Он не «решает» несколько имен пользователей - 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