我有一个登录系统,其用户的电子邮件为test@test.test
,但每当我尝试使用此系统时,它始终会返回“无”
if request.method=="POST":
email=request.POST.get('email','')
password = request.POST.get('password','')
user = auth.authenticate(email=email,password=password)
print(email)
print(password)
print(user)
if user is not None:
print("notNone")
auth.login(request,user)
return HttpResponseRedirect("out")
else:
print("None")
context={
"failure":"Password and e-mail did not match",
}
return HttpResponseRedirect("out")
即使我auth.authenticate(email=email)
或auth.authenticate(email="test@test.test")
,它也总是不返回。我做错了什么?
答案 0 :(得分:1)
Django的authenticate
方法检查username
,而不是电子邮件。
它以关键字参数的形式获取凭据,默认配置为用户名和密码。
对此的简单解决方案是,在定义用户时,将其用户名设置为与电子邮件相同。