Поддерживает ли django auth одинаковые имена пользователей? - PullRequest
2 голосов
/ 10 августа 2011

У меня есть две базы данных, и я должен переместить информацию пользователей из них в Django. Проблема в том, что имена пользователей повторяются (это другие пользователи). Как это решить?

1 Ответ

1 голос
/ 10 августа 2011

Он не «решает» несколько имен пользователей - django.contrib.auth.models.User.username имеет unique=True, поэтому каждое из них должно быть уникальным.

База данных решит эту проблему для вас, выплюнув базу данных IntegrityError, когда вы попытаетесь добавить второго пользователя с тем же именем пользователя.

Если у вас есть работающая система аутентификации с несколькими именами пользователей, то вы явно не входите в систему с именем пользователя в качестве уникального идентификатора пользователя.

Возможно, вы используете адреса электронной почты для входа в систему с полем имени пользователя как просто «flair» (почти как SO) - в этом случае я мог бы изменить поле имени пользователя на более длинное и сохранить адрес электронной почты в поле имени пользователя / имени пользователя в модели профиля пользователя.

https://docs.djangoproject.com/en/dev/topics/auth/#storing-additional-information-about-users

Вы также можете удалить это уникальное ограничение и написать свой собственный бэкэнд аутентификации, который знает, как найти вашего уникального пользователя / проверить его учетные данные. Там должно быть / что-то / уникальное в каждом пользователе, верно? https://docs.djangoproject.com/en/dev/topics/auth/#writing-an-authentication-backend

...