django的身份验证不起作用

时间:2015-07-22 14:06:42

标签: django authentication passwords

我正在为django进行密码重置,但无论我尝试重置都不起作用。所以我检查了我的表格处理的数据,我知道这些数据必须是真的。它仍然无法正常工作。所以我试图在django shell中进行身份验证。这就是发生的事。

壳:

In [11]: user = User.objects.first()
In [12]: password = "bier"
In [13]: user.set_password(password)
In [14]: i = authenticate(username=user.username, password=password)
In [15]: i
i returns None

有人知道造成这种情况的原因是什么?

2 个答案:

答案 0 :(得分:3)

您应该保存用户对象

user.save()

根据文档,用户对象未保存:

"将用户的密码设置为给定的原始字符串,并负责密码散列。不保存用户对象。"

https://docs.djangoproject.com/en/1.8/ref/contrib/auth/#django.contrib.auth.models.User.set_password

答案 1 :(得分:0)

from django.contrib.auth.models import User
u = User.objects.get(username='john')
u.set_password('new password')
u.save()

http://jsfiddle.net/cjqvnnho/1/ https://docs.djangoproject.com/en/dev/topics/auth/default/#changing-passwords

相关问题