Django authenticate是None

时间:2017-09-19 13:40:03

标签: django django-authentication

def user_login(request):
    if request.method == "POST":
        user_name = request.POST.get("username",'')
        pass_word = request.POST.get("password",'')
        user = authenticate(user_name=user_name,password=pass_word)
        if user is not None:
            login(request,user)
            return render(request,'index.html')
        else:
            return render(request,'login.html',{ })
    elif request.method == "GET":
        return render(request,"login.html",{ })

我已经设置了超级用户并更新了数据库,但后台密码用户仍然返回无

3 个答案:

答案 0 :(得分:2)

authenticate函数以形式接受参数: authenticate(username='john', password='secret')

变化

user_name - >用户名

参数中的

答案 1 :(得分:0)

默认身份验证看起来像这样

from django.contrib.auth import authenticate
user = authenticate(username='john', password='secret')
if user is not None:
    # A backend authenticated the credentials
else:
    # No backend authenticated the credentials

所以如果您不是 覆盖 ,我认为您需要更改 用户名

答案 2 :(得分:0)

user = authenticate(username=user_name,password=pass_word)

在此行中,authenticate函数以username=user_name而不是user_name=user_name作为参数。我认为这可能是个问题。

希望这会有所帮助: - )