authenticate什么都不返回

时间:2009-12-22 17:13:51

标签: python django django-models

接下来的实验是什么:

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
>>>

验证什么都不返回,我缺少什么?

1 个答案:

答案 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>