Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django:更改validate_ipv46_地址的错误消息_Python_Django_Django Forms_Django Validation - Fatal编程技术网

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地址是一个函数,而不是类。