Django中的PASSWORD_HASHERS设置
问题内容:
每当我尝试通过任何用户错误登录时都会出错
未知的密码哈希算法“ sahar”。您是否在PASSWORD_HASHERS设置中指定了它?
观点
def Login(request):
state = "Please log in below..."
username = password = ''
if request.method == 'POST':
username = request.POST['username']
password = request.POST['password']
user = authenticate(username=username, password=password)
if user is not None:
if user.is_active:
login(request, user)
return HttpResponseRedirect('/profile/')
else:
return render_to_response('auth.html',RequestContext(request))
else:
return render_to_response('auth.html',RequestContext(request))
else:
return render_to_response('auth.html',RequestContext(request)
问题答案:
这意味着有一个纯文本'sahar'
存储为尝试登录的用户帐户
的密码。在Admin或admin中更新该用户的密码manage.py shell
user = User.objects.get(username=username)
# use set_password method
user.set_password('sahar')
user.save()
# INSTEAD OF
user.password = 'sahar'
user.save()
还要检查您的其他视图以更正user.password = '...'
和User.objects.create(password='...')
用法。