from django import forms from django.utils.translation import gettext_lazy as _ class EmailForm(forms.Form): email = forms.EmailField( required=True, error_messages={ 'required': _('email is required') }) class EnterpriseEmailForm(EmailForm): PERSONAL_EMAIL_DOMAINS = [ 'gmail.com', 'hotmail.com', 'yahoo.com', '163.com', 'qq.com', 'sina.com', 'sohu.com', '126.com', 'yeah.net', '139.com', '189.cn', 'foxmail.com', ] def clean_email(self): email = self.cleaned_data['email'] domain = email.split('@')[1] if domain in self.PERSONAL_EMAIL_DOMAINS: raise forms.ValidationError(_('please input an enterprise email')) return email