Auth.authenticate永远不会返回正面的Django

时间:2016-01-25 10:47:50

标签: python django database authentication

我有一个登录系统,其用户的电子邮件为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"),它也总是不返回。我做错了什么?

1 个答案:

答案 0 :(得分:1)

Django的authenticate方法检查username,而不是电子邮件。

  

它以关键字参数的形式获取凭据,默认配置为用户名和密码。

对此的简单解决方案是,在定义用户时,将其用户名设置为与电子邮件相同。