2017-02-21 11 views
0

バリデーターのエラーメッセージvalidate_ipv46_addressを変更したいと思います。Django:validate_ipv46_addressのエラーメッセージを変更してください

これは私のforms.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_ipv46_addressのmessegeを変更したいが、それはvalidate_ipv46_address(message='')ようなメッセージを引数にしていません。

また、独自のバリデータを作成する必要がありますか?しかし、これもうまくいきません。ソースの

class my_validate_ipv4_address(validate_ipv46_address): 
    message = 'test' 
+0

サブクラス化は機能しません - * validate_ipv46_address *はクラスではなく関数です。 – Pearley

答えて

0

クイックチェックは、あなたがこのようにそれをラップする必要があることが明らかになった:

それは何
def my_validate_ipv46_address(value): 
    try: 
     validate_ipv46_address(value) 
    except ValidationError: 
     raise ValidationError(_('your message here'), code='invalid') 

は、Djangoのバリデータによって発生した検証エラーをキャッチし、あなた自身の例外メッセージとそれを提供することをあります。バリデータから返された元のメッセージは無視されることに注意してください。バリデーションの失敗の原因について適切な情報を提供するためにそれを利用する方が良いかもしれません。

+0

ありがとうございます。これは私の問題を解決しました。 – ikreb

関連する問題