我尝试登录任何用户时出错 错误
未知密码哈希算法'sahar'。你有没有在中指定它? PASSWORD_HASHERS设置?
Views.Py
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)
答案 0 :(得分:25)
这意味着存在一个纯文本'sahar'
存储为尝试登录的用户帐户的密码。
在管理员或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='...')
用法。
答案 1 :(得分:1)
这是保存登录详细信息的最佳方式 您可以从表单创建一个对象 如
user = form.save(commit=False)
然后清理数据以删除在表单字段中输入的任何脚本。
username = form.cleaned_data['username']
password = form.cleaned_data['password']
user.set_password(password)
user.save()