验证返回为空

0 投票
1 回答
813 浏览
提问于 2025-04-15 17:17

我正在尝试的事情是:

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

authenticate没有返回任何东西,我缺少了什么呢?

1 个回答

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>

撰写回答