接下来的实验是什么:
S:\proj>manage.py shell
Python 2.5.4 (r254:67916, Dec 23 2008, 15:10:54) django 1.1.1
>>> from django.contrib.auth.models import User
>>> u = User(username='luis', password='admin')
>>> u.save() #sucessfull created in mysql db
>>> from django.contrib.auth import authenticate
>>> usuario = authenticate(username='luis', password='admin')
>>> usuario
>>>
验证什么都不返回,我缺少什么?
答案 0 :(得分:4)
问题不在于authenticate
,而在于您创建了用户。
u.password
中存储的值必须是密码的哈希值,而不是原始密码本身。
您可以使用u.set_password('password')
为您处理散列:
>>> u = User(name='luis')
>>> u.set_password('password')
>>> u.save()
>>> authenticate(username='luis', password='password')
<User: luis>