我正在尝试自定义This field is required
错误消息,但是它无法按预期工作。
首先,我尝试创建自定义验证器。
validators.py
def required_field(input):
if input is None or input == '':
raise ValidationError("Custom error message")
和models.py
a_field = models.TextField(validators=[required_field])
但是,验证器不起作用,并且显示默认错误消息This field is required.
。
第二,我覆盖了clean
方法
models.py
def clean(self):
if not self.a_field:
raise ValidationError({'a_field': 'Custom Error Message'})
显示错误消息,但其后是默认错误消息。 如何直接覆盖它?
我正在使用crispy_form
顺便说一句。
html
{{ form|crispy }}
答案 0 :(得分:2)
您需要使用表单的init方法进行操作
class MyForm(forms.ModelForm):
class Meta:
model = MyModel
def __init__(self, *args, **kwargs):
super(MyForm, self).__init__(*args, **kwargs)
self.fields['a_field '].error_messages = {'required': 'Custom Error Message'}