我想制作一个用户注册表单,其中包含姓名,姓氏,电子邮件,重新发送电子邮件和密码等字段。
所以我的问题是如何验证,以便输入电子邮件和重新发送电子邮件是相同的。在阅读文档进行验证时,我找不到一些帮助:https://docs.djangoproject.com/en/1.4/ref/validators/
我用Google搜索时发现了这个网站,但是自2006年以来,Django似乎已经发生了很多变化。因为1.4中不存在AlwaysMatchOtherField
这是网站 http://www.b-list.org/weblog/2006/sep/02/django-tips-user-registration/
答案 0 :(得分:3)
您可以覆盖表单clean
方法来执行validate fields that rely on each other。
class MyForm(models.ModelForm):
def clean(self):
cleaned_data = super(MyForm, self).clean()
if cleaned_data['email'] != cleaned_data['re_email']:
raise forms.ValidationError("Your emails don't match")
return cleaned_data
关于注册表,您应该使用django-registration
答案 1 :(得分:0)
这是我按照https://github.com/django/django/blob/master/django/contrib/auth/forms.py的例子做的:
def clean_email2(self):
email = self.cleaned_data.get("email")
email2 = self.cleaned_data.get("email2")
if email and email != email2:
raise forms.ValidationError(
"Your email address differs",
)
return email2
为了防止错误,检查电子邮件地址是否已填写非常重要。