python - 我无法在 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]
错误:在此处输入图像描述
解决方案
您在 first_name、last_name 等定义的末尾添加了逗号。这将它们变成了元组。删除那些逗号。
但正如 Dani 在评论中指出的那样,您应该使用表单。特别是因为 Django 已经内置了一个 UserCreationForm。
推荐阅读
- java - Java 计时器上的错误
- mysql - 第 1 行的错误 1083 (42000):字段分隔符参数不是使用 mysql LOAD 时所期望的
- xamarin - 如何在编译时查找针对 Xamarin iOS 的 SDK 版本的代码
- ruby-on-rails - 数字的 Ruby 正则表达式应该尊重每个数字组的一些规则
- ibm-cloud - NLU 分析:关键字/实体的 -1 到 1 情绪得分是否代表量级或信心?
- c++ - 稍后在 QML 中调用 C++ 发出信号
- r - jsonlite突然返回错误:“从对端接收数据失败”
- arrays - 需要更改格式
- vba - 无法引用命名范围集合项
- php - 在 PHP 中,为什么 `print 08+"51";` 给出 51?