Python Django:更改validate_ipv46_地址的错误消息
我想更改验证程序的错误消息Python Django:更改validate_ipv46_地址的错误消息,python,django,django-forms,django-validation,Python,Django,Django Forms,Django Validation,我想更改验证程序的错误消息validate\u ipv46\u address 这是我的表单中的代码。py: class IPAddressForm(forms.ModelForm): ip_address = forms.CharField(validators=[validate_ipv46_address]) class Meta: # ... def __init__(self, *args, **kwargs): super
validate\u ipv46\u address
这是我的表单中的代码。py
:
class IPAddressForm(forms.ModelForm):
ip_address = forms.CharField(validators=[validate_ipv46_address])
class Meta:
# ...
def __init__(self, *args, **kwargs):
super(IPAddressForm, self).__init__(*args, **kwargs)
def clean_ip_address(self):
# i check other stuff
我想更改validate\u ipv46\u address
的消息,但它没有像validate\u ipv46\u address(message='')这样的消息参数
或者我必须编写自己的验证器?但这也不起作用
class my_validate_ipv4_address(validate_ipv46_address):
message = 'test'
快速签入源代码显示您需要像这样包装它:
def my_validate_ipv46_address(value):
try:
validate_ipv46_address(value)
except ValidationError:
raise ValidationError(_('your message here'), code='invalid')
它所做的是捕获Django的验证器引发的验证错误,并向其提供您自己的异常消息。请注意,您可能会忽略验证程序返回的原始消息-最好仍然使用它来提供有关验证失败原因的正确信息。子类化不起作用-验证ipv46\U地址是一个函数,而不是类。