首页 > 解决方案 > 我无法在 django 中使用 create_user() 方法注册用户

问题描述

这是我的应用程序的代码。

def register(request):
    if request.method == 'POST':
        first_name = request.POST['first_name'],
        last_name = request.POST['last_name'],
        email = request.POST['email'],
        username = request.POST['username'],
        password = request.POST['password'],
        password2 = request.POST['password2'],


        if password == password2:
            if User.objects.filter(username=username).exists():
                return redirect('register')
            else:
                if User.objects.filter(email=email).exists():
                    return redirect('register')
                else:
                    print(username,email,password,first_name,last_name)

                    user = User.objects.create_user(username=username, password=password, email=email,
                                                first_name=first_name, last_name=last_name)
                    print(username, email, password, first_name, last_name)
                    user.save()
                    return redirect('login')
        else:
            return redirect('register')
    else:
        return render(request,'blog/register.html')

执行 print() 函数。但 user = User.objects.create_user() 不工作。我不明白为什么它不起作用。[我不明白这个问题。(浏览器显示:)][1]

错误:在此处输入图像描述

标签: pythondjango

解决方案


您在 first_name、last_name 等定义的末尾添加了逗号。这将它们变成了元组。删除那些逗号。

但正如 Dani 在评论中指出的那样,您应该使用表单。特别是因为 Django 已经内置了一个 UserCreationForm。


推荐阅读