Python 检查导致错误请求的重复电子邮件地址
我有一个用于创建新用户的表单,并且我添加了Python 检查导致错误请求的重复电子邮件地址,python,python-3.x,django,django-models,django-forms,Python,Python 3.x,Django,Django Models,Django Forms,我有一个用于创建新用户的表单,并且我添加了clean_email功能,用于检查电子邮件地址是否已经存在,如下所示: form = NewUserForm(request.POST) if form.is_valid(): data = form.cleaned_data else: return render(request, 'newuser.html', {'form':form}) return redirect('newuserpage') 类NewUserForm(
clean_email
功能,用于检查电子邮件地址是否已经存在,如下所示:
form = NewUserForm(request.POST)
if form.is_valid():
data = form.cleaned_data
else:
return render(request, 'newuser.html', {'form':form})
return redirect('newuserpage')
类NewUserForm(ModelForm):
类元:
模特=学生
字段='\uuuu所有\uuuu'
def clean_电子邮件(自我):
email=self.cleanned\u data.get('email'))
尝试:
match=User.objects.get(email=email)
除User.DoesNotExist外:
返回电子邮件
raise forms.ValidationError('具有此电子邮件地址的用户已存在')
不幸的是,在我尝试用已经存在的电子邮件地址注册一个用户来测试这一点之后,我在浏览器中得到此页面不工作错误。我不知道为什么会这样,有人能帮忙吗
编辑:我发现了问题所在,现在它可以正常工作了。它不允许我创建具有重复电子邮件地址的用户,但如何在站点上显示错误消息
编辑\u 2:查看代码
form = NewUserForm(request.POST)
if form.is_valid():
data = form.cleaned_data
else:
form = NewUserForm()
return redirect('newuserpage')
我的观点有些问题。我是这样修复的:
form = NewUserForm(request.POST)
if form.is_valid():
data = form.cleaned_data
else:
return render(request, 'newuser.html', {'form':form})
return redirect('newuserpage')
您是复制/粘贴代码还是手动键入代码<代码>\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
应该是字符串。我复制粘贴了它,但它在我的代码中是一个字符串,不知道这是怎么发生的。而且,我一定是做错了什么,我已经查看了文档,但仍然无法显示错误消息。别担心。这只是你大脑中需要连接的东西。请记住,模板无法呈现它不知道的内容。没有神奇的视图/模板连接,模板中的所有变量都有一个可以定位的源(视图、generic.base.ContextMixin和上下文处理器是主要的源)。