我的django应用程序中的所有用户都可以登录(从而通过身份验证)。但是有一些用户无法登录。我不知道为什么会发生这种情况。我正在使用Django 1.5.8和postgresql 9.2
看看这个:
>>> user = User.objects.get(pk=364)
>>> user
<User: GR006047>
>>> user.username
u'GR006047'
>>> user.set_password('123')
>>> user = authenticate(username='GR006047', password='123')
>>> user
>>> user == None
True
任何帮助将不胜感激。
答案 0 :(得分:5)
啊......你没有保存用户。即user.save()
答案 1 :(得分:2)
基于https://docs.djangoproject.com/en/1.4/topics/auth/#django.contrib.auth.models.User.set_password
的文档将用户密码设置为给定的原始字符串,并负责密码散列。不保存用户对象。
因此您需要在设置密码后保存用户对象:
>>> user.set_password('123')
>>> user.save()
>>> user = authenticate(username='GR006047', password='123')