我的新闻稿表单中有一个电子邮件字段,如下所示:
class NewsletterForm(forms.ModelForm): email = forms.EmailField(widget=forms.EmailInput(attrs={ 'autocomplete': 'off', 'class': 'form-control', 'placeholder': _('seuemail@email.com'), 'required': 'required' })) class Meta: model = Newsletter fields = ['email', ]
我的表单正在运行,但是当我输入"ahasudah @ ahs"没有域名的DOT时,我收到此错误"输入有效的电子邮件地址"
这是哪里?
我刚刚检查了原始源代码,但我找不到像其他字段一样覆盖的错误消息.
https://github.com/django/django/blob/master/django/forms/fields.py#L523
任何想法如何覆盖此消息?
实际上,您可以在两个不同的级别以两种不同的方式执行此操作:
您可以在表单验证级别执行此操作:
class NewsletterForm(forms.ModelForm):
email = forms.EmailField(
widget=forms.EmailInput(attrs={
'autocomplete': 'off',
'class': 'form-control',
'placeholder': _('seuemail@email.com'),
'required': 'required'
}),
error_messages={'invalid': 'your custom error message'}
)
class Meta:
model = Newsletter
fields = ['email', ]
在模型级别的第二种方法:
2.1。您可以按照以下形式进行操作:
email = models.EmailField(error_messages={'invalid':"you custom error message"})
2.2。或者您使用django 内置的验证器:
from django.core.validators import EmailValidator
email = models.EmailField(validators=[EmailValidator(message="your custom message")]) # in you model class