Вход в систему / Аутентификация
Чтобы Django проходил аутентификацию, используя электронную почту / пароль вместо имени пользователя / пароля, вам нужно будет добавить в настройки.py:
AUTHENTICATION_BACKENDS = ('myproject.myauthenticationbackend')
Этот сервер аутентификации должен иметь возможность аутентифицировать пользователя на основе электронной почты / пароля.Хороший бэкэнд для аутентификации электронной почты можно найти здесь: http://djangosnippets.org/snippets/74/
Регистрация пользователя
Обычно ваша форма регистрации запрашивает у пользователя адрес электронной почты и пароль.Однако модель Django с аутентификацией User требует, чтобы у каждого пользователя было имя пользователя.Один из способов справиться с добавлением имени пользователя - при сохранении регистрационной модели, сгенерировать случайное имя пользователя (так как мы все равно его не используем).
Вам нужно будет вручную проверить, что электронная почта, введенная пользователемуже зарегистрирован в вашей системе.
Некоторое время назад я также написал сообщение в блоге, в котором есть более полные заметки об аутентификации электронной почты.Он также включает в себя образец формы регистрации по электронной почте / паролю:
http://www.xairon.net/2011/05/django-email-only-authentication/