python - 出现任何错误 AttributeError: 'tuple' object has no attribute 'strip on user registration
问题描述
我正在使用 django 创建用户注册。我用我的视图寄存器创建了一个简单的 HTML 文件。但是当我点击提交时,它给了我一个错误:
email_name, domain_part = email.strip().split('@', 1)
AttributeError: 'tuple' object has no attribute 'strip'
我的 HTML:
<form action="register" method="post">
{% csrf_token %}
<input type="text" name="first_name" placeholder="Enter ur nem"><br>
<input type="text" name="last_name" placeholder="Enter ur surname"><br>
<input type="email" name="email" placeholder="Enter ur email"><br>
<input type="text" name="username" placeholder="Enter ur Usetrname"><br>
<input type="password" name="password1" placeholder="Enter ur password"><br>
<input type="password" name="password2" placeholder="Enter again your password"><br>
<input type="submit"> </div>
我的观点:
from django.contrib.auth.models import User , auth
def register(request):
if request.method == 'POST':
first_name= request.POST['first_name'],
last_name= request.POST['last_name'],
email= request.POST['email'],
password1 = request.POST['password1'],
password2= request.POST['password2'],
username= request.POST['username'],
if password1 == password2:
if User.objects.filter(username=username).exists():
print('usernem taken')
else:
myuser= User.objects.create_user(username=username, password = password1, email= email,
first_name = first_name, last_name= last_name)
myuser.save();
print ('user saved')
else:
print('passwords do not match')
return redirect ('/')
解决方案
first_name= request.POST['first_name'],
用逗号结束行,first_name
这不是您所期望的字符串;事实上,它是一个只有一个元素的元组。如果您执行以下操作,您可能会看到:
>>> t = "test_string",
>>> t
('test_string',)
然后,当您尝试调用strip
元组而不是字符串时,您会收到错误消息。
要解决此问题,您需要删除从 中提取值的所有行上的尾随逗号request.POST
,因此
email= request.POST['email'],
变成
email = request.POST['email']
推荐阅读
- reactjs - react中的动态图像src链接不起作用(多次尝试)
- javascript - 如何在引导 btn 中添加和删除活动状态
- ckeditor4.x - Bender.js 运行服务器:ReferenceError: primordials is not defined
- reactjs - React.js 中的分页问题
- django - 在 django 中使用 django-sass-processor 库但拒绝应用样式,因为它的 MIME 类型不是受支持的样式表
- lilypond - Lilypond :将歌词添加到反斜杠临时声音中
- r - 无法跨 R 版本使用恒定种子复制 sample_n 结果
- python - 完成得太快时,Ansible Runner 连续调用会混乱
- python - 将 python 项目构建为包,无需 Internet 访问
- java - 发送到后端时发生 I/O 错误。[文件上传]