Изменить форму проверки для входа администратора в Django - PullRequest
0 голосов
/ 16 октября 2010

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

Но когда я пытаюсь войти в систему с правами администратора, я получаю сообщение: "имена пользователей не могут содержать символ '@'"

Полагаю, эта ошибка возникает до того, как она достигает бэкэнда аутентификации, поэтому проблема с формой, верно?

1 Ответ

1 голос
/ 16 октября 2010

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

Для этого [2] есть открытый билет.

Начиная с версии 1.2, django разрешает отправлять электронные письма под именем User.username. Если вы используете эту версию, возможно, вам даже не понадобится пользовательский бэкэнд для аутентификации. Но ошибка [2] сохраняется!

Единственное решение, которое я вижу, чтобы удалить эту проверку, это создать собственный AdminSite и переопределить метод login (), что плохо ...

[1] http://code.djangoproject.com/browser/django/trunk/django/contrib/admin/sites.py#L323 [2] http://code.djangoproject.com/ticket/13928

...