0

我想制作一个用户注册表单,其中包含名字、姓氏、电子邮件、重新电子邮件和密码等字段。

所以我的问题是如何验证输入电子邮件和重新电子邮件是相等的。在此处阅读验证文档时我找不到一些帮助:https ://docs.djangoproject.com/en/1.4/ref/validators/

我在谷歌搜索时发现了这个网站,但似乎 Django 自 2006 年以来发生了很大变化。因为AlwaysMatchOtherField在 1.4 中不存在

这是网站 http://www.b-list.org/weblog/2006/sep/02/django-tips-user-registration/

4

2 回答 2

3

您可以覆盖您的表单clean方法来验证相互依赖的字段

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

于 2012-03-25T20:27:14.883 回答
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

为了防止错误,检查电子邮件地址是否填写非常重要。

于 2016-02-26T13:06:17.607 回答