Первичный ключ служит трем целям:
, первые два могут быть определены большим количеством способов, поскольку Вы уже сделали.
третья причина хороша:
первичный ключ А не должен быть числовым полем автопостепенного увеличения, таким образом, я сказал бы, что это - хорошая идея определить Ваш столбец гуида как первичный ключ.
Если я правильно понимаю ваш вопрос (а, возможно, нет), я думаю, вы спрашиваете, как создать отдельную форму входа для пользователей без прав администратора, при этом используя стандартный Django механизмы аутентификации, модель пользователя
и т. д. Это изначально поддерживается Django через представления в django.contrib.auth.views
.
Вы хотите начать с django. contrib.auth.views.login
. Добавьте строку в свой urlconf следующим образом:
(r'^/login/$', 'django.contrib.auth.views.login', {'template_name': 'myapp/login.html'})
Общее представление login
принимает параметр template_name
, который является путем к вашему настраиваемому шаблону входа в систему (есть общий шаблон, который вы можете также используйте, предоставленный django.contrib.auth
).
Полная документация по входу
, выходу из системы
, password_change
,
Вы потенциально можете написать один или несколько пользовательских механизмов аутентификации. Это описано здесь . Я написал собственный бэкэнд для аутентификации, например, на сервере LDAP.
Слегка изменить что-либо, чтобы в имени пользователя был префикс категории? Вы не предоставили нам много информации о том, что хотите сделать, возможно, ваши потребности могут быть удовлетворены с помощью инфраструктуры сайтов или просто двух отдельных установок django.
Если вы пытаетесь сделать, Страница входа пользователя и страница входа администратора разделены, просто используйте встроенный фреймворк, как описано в документации, чтобы создать страницу входа «пользователя» и не трогайте страницу администратора. Если вы беспокоитесь, что пользователи каким-то образом начнут редактировать данные для входа в систему администратора, не беспокойтесь, они не будут этого делать, если вы им не позволите.