2017-05-11 11 views
0

Django Rest Framework(とDjango)では、伝統的にvalidate_<field>メソッドのフィールドをチェックし、validateメソッドでよりグローバルなチェックを行います。Django Rest Framework validateメソッドでフィールドエラーを追加しますか?

しかし、このコードスニペットを見て:

ここ
def validate(self, data): 
    # .... 
    try: 
     customer.activate(data['signup_code'], data['raw_password']) 
    except BadCodeProvided: 
     raise ValidationError(MSG_WRONG_ACTIVATION_CODE) 
    except SomeOtherException: 
     raise ValidationError(SOME_OTHER_MESSAGE) 

私は私の検証のための2つのフィールド(signup_codeとraw_password)を使用していますので、私はvalidateメソッドを使用するように強制しています。 しかし、BadCodeProvided Exceptionでエラーが発生した場合、ここで発生した例外のためにsignup_codeフィールドに関連しています(raw_passwordフィールドには関係ありません)。

上記のスニペットコードでは、thiwは "non_field_error"を作成します。 質問:DRFには同じエラーを発生させる方法がありますが、「signup_code」フィールドに関連していますか? (それはvalidate_signup_code方法で行われるように)。

おかげ

答えて

1

あなたはシリアライザでserializers.ValidationErrorを使用することができます。

raise serializers.ValidationError({"myField": "custom message error 1", 
           "myField2": "custom message error 1"}) 

DOCここValidator DRF

関連する問題