使用Django-Registration验证自定义电子邮件域

时间:2013-01-06 05:33:26

标签: django django-registration

我看到了JQuery EDU验证的here版本,但我很乐意使用django-registraion来检查完整的域@someschool.edu@alumni.someschool.edu

有什么想法吗?谢谢你的帮助。

1 个答案:

答案 0 :(得分:2)

您可以在forms.py中创建自己的表单,您已经有了一些示例:

  • 注册服务期限
  • 使用唯一邮件注册
  • 无免费邮箱注册

在您的情况下添加:

class RegistrationFormEduMail(RegistrationForm):

    good_domains = ['edu']

    def clean_email(self):

        email_domain = self.cleaned_data['email'].split('.')[-1]
        if email_domain not in self.good_domains:
            raise forms.ValidationError(_("Registration using non edu email addresses is prohibited. Please supply a different email address."))
        return self.cleaned_data['email']

然后进入registration / backends / default / init .py并导入表单,将get_form_class()方法返回的表单名称更改为表单名称(此处:RegistrationFormEduMail)