У меня есть пользовательский пользователь в проекте Django 1.5, который использует email
поле в качестве имени пользователя:аутентификации пользовательского пользователя в Django 1.5
class MyUser(AbstractUser):
my_custom_field = models.CharField(max_length=20, blank=True, null=True)
USERNAME_FIELD = 'email'
MyUser._meta.get_field_by_name('email')[0]._unique = True
MyUser.REQUIRED_FIELDS.remove('email')
Если я пытаюсь проверить подлинность этого пользователя, как так:
auth_user = authenticate(username=email, password=password)
login(request, auth_user)
я получаю это:
Traceback:
File "/Users/user/dev/proj/app/core/views.py" in post
39. login(request, auth_user)
File "/Users/user/.virtualenvs/proj/lib/python2.7/site-packages/django/contrib/auth/__init__.py" in login
92. request.session[BACKEND_SESSION_KEY] = user.backend
File "/Users/user/.virtualenvs/proj/lib/python2.7/site-packages/django/utils/functional.py" in inner
203. return func(self._wrapped, *args)
Exception Type: AttributeError at /signup
Exception Value: 'AnonymousUser' object has no attribute 'backend'
Как я должен проверить подлинность пользовательского пользователя?
Я имел в виду это 'AUTHENTICATION_BACKENDS = ('django.contrib.auth.backends.ModelBackend')' –
Вы установили 'AUTH_USER_MODEL'? –
'authenticate', похоже, не возвращает фактического пользователя. Это стандартный метод из django.contrib.auth? Вы уверены, что правильный адрес электронной почты и пароль? –