Я использую, проходят проверку подлинности () проходящим проверку подлинности пользователям вручную. Используя администраторский интерфейс I видят, что нет никакого атрибута 'last_login' для Пользователей
Отладка traceback:
Environment:
Request Method: GET
Request URL: https://localhost/login/
Django Version: 1.1.1
Python Version: 2.6.5
Installed Applications:
['django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.admin',
'mobius.polls']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware')
Traceback:
File "/usr/lib/pymodules/python2.6/django/core/handlers/base.py" in get_response
92. response = callback(request, *callback_args, **callback_kwargs)
File "/usr/lib/pymodules/python2.6/django/contrib/auth/__init__.py" in login
55. user.last_login = datetime.datetime.now()
Exception Type: AttributeError at /login/
Exception Value: 'unicode' object has no attribute 'last_login'
Я не могу выяснить, почему там это несоответствие.
Любой вид справки ценился бы.Заранее спасибо!
проблема не в Authenticate ()
, это похоже на login ()
, в который вы, похоже, передаете unicode
, а не ] объект django.contrib.auth.models.User
.
Вероятно, вы должны получить этот объект User из Authenticate ()
user = authenticate(username=username, password=password)
...
login(request, user)
Значение исключения говорит о том, что: "user" - это объект unicode вместо объекта django.contrib.auth.models.User. Вы уверены, что база данных доступна? try:
python manage.py shell
>>> from django.contrib.auth.models import User
>>> u = User.objects.get(pk=1)
>>> u.last_login
Этот код должен работать правильно. Если нет, значит что-то не так с настройкой вашей базы данных. (возможно, вы не выполнили python manage.py syncdb
?)
Пожалуйста, опубликуйте также части settings.py, связанные с базой данных. Из вашей текущей информации нелегко найти причину вашей проблемы.
Также будет полезен полный трассировочный откат.