用户身份验证不工作Djang

2024-04-25 17:32:19 发布

您现在位置:Python中文网/ 问答频道 /正文

当我尝试登录时,用户没有得到身份验证。在

这是我的注册码

def register(request):
if request.method == "POST":
    username = request.POST["name"]
    email =  request.POST["email"]
    password = request.POST["password"]
    password2 = request.POST["password2"]

    try:
        if password2 != password:
            messages.error(request, "password did'nt match")
        elif User.objects.get(email=email):
            messages.error(request, "user already exists")
    except: 
        if email and username:
            user = User.objects.create_user(username=username, email=email)
            user.set_password(password)
            user.save()
            messages.success(request, "user created")
        else:
            messages.error(request, "Looks like user already exists")

return render(request, 'register.html', {})

如果我使用的是我的登录代码用户.object.get对于email和check_password for password,它有效,但当我使用authenticate时,它不工作。打印身份验证返回“无”

^{pr2}$

Tags: 用户身份验证registerifobjectsemailrequestusername
1条回答
网友
1楼 · 发布于 2024-04-25 17:32:19

根据您的评论,您使用的是默认身份验证系统,但您使用以下行进行身份验证:

user = authenticate(email=email , password=password)

根据你的问题,解决办法是:
email = request.POST["email"]

username = request.POST["name"]
user = authenticate(username=username , password=password)

默认情况下,django日志使用用户名,而不是电子邮件(Cf:the documentation)。在

对于您在评论中的问题,它是Django - Login with Email的副本。 我邀请你在公认的答案中找到你的解决办法。在

相关问题 更多 >

    热门问题