Django:如何覆盖默认错误消息?
我正在尝试自定义Django:如何覆盖默认错误消息?,django,django-models,django-forms,Django,Django Models,Django Forms,我正在尝试自定义此字段是必需的错误消息,但它无法按预期工作 首先,我尝试创建自定义验证器 validators.py def required_field(input): if input is None or input == '': raise ValidationError("Custom error message") a_field = models.TextField(validators=[required_field]) def clean(self)
此字段是必需的
错误消息,但它无法按预期工作
首先,我尝试创建自定义验证器
validators.py
def required_field(input):
if input is None or input == '':
raise ValidationError("Custom error message")
a_field = models.TextField(validators=[required_field])
def clean(self):
if not self.a_field:
raise ValidationError({'a_field': 'Custom Error Message'})
和models.py
def required_field(input):
if input is None or input == '':
raise ValidationError("Custom error message")
a_field = models.TextField(validators=[required_field])
def clean(self):
if not self.a_field:
raise ValidationError({'a_field': 'Custom Error Message'})
但是,验证程序不工作,默认错误消息此字段是必需的。
显示
其次,我重写了clean
方法
models.py
def required_field(input):
if input is None or input == '':
raise ValidationError("Custom error message")
a_field = models.TextField(validators=[required_field])
def clean(self):
if not self.a_field:
raise ValidationError({'a_field': 'Custom Error Message'})
显示错误消息,但后面跟着默认错误消息。
如何直接覆盖它
我用的是crispy\u表单
btw
html
{{ form|crispy }}
您需要在表单的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'}
您需要在表单的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'}