2017-02-21 4 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') 

그것이 무엇을하는가 장고의 검증에 의해 제기 된 유효성 검사 오류를 잡아 것입니다 그리고 당신은 당신의 자신의 예외 메시지와 함께 제공 . 유효성 검사기에서 반환 된 원본 메시지는 무시할 수 있습니다. 유효성 검사 실패 원인에 대한 적절한 정보를 제공하기 위해 유효하게 활용하는 것이 좋습니다.

+0

고맙습니다. 이것은 내 문제를 해결했다. – ikreb

관련 문제