Django-更改字段验证消息 [英] Django - change field validation message
问题描述
我的时事通讯表单中有一个电子邮件字段,如下所示:
I have an email field in my Newsletter form that looks like this:
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域名时,出现此错误输入有效的电子邮件地址
My form is working, but when I type "ahasudah@ahs" without a DOT for the domain name, I get this error "Enter a valid email address"
这是哪里?
我只是检查了原始来源,却找不到错误消息像其他字段一样覆盖。
I just checked the original source and I couldn't find an error message to override like other fields.
https://github.com/django/django/blob/master/ django / forms / fields.py#L523
有什么想法可以覆盖此消息吗?
Any ideas how to override this message?
推荐答案
实际上,您可以通过两种不同的方式来实现分为两个不同的级别:
In fact you can do this in two different ways in two different level:
- 您可以在表单验证级别执行此操作:
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。您可以执行以下操作:
2.1. you can do the same as in the form:
email = models.EmailField(error_messages={'invalid':"you custom error message"})
2.2 。或使用django 内置验证器:
2.2. or you use django built-in Validators:
from django.core.validators import EmailValidator
email = models.EmailField(validators=[EmailValidator(message="your custom message")]) # in you model class
这篇关于Django-更改字段验证消息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!