Django 身份验证是 None

Django authenticate is None

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",{ })

我已经设置了超级用户和更新了数据库,但是后台密码用户还是returnsNone

authenticate 函数采用以下形式的参数: authenticate(username='john', password='secret').

改变

user_name -> 用户名

在争论中

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

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

所以我认为你需要更改 用户名 如果你不是 overriding

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

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

希望这对您有所帮助:-)