2016-05-15 13 views
0

シリアライザデータが保存される前にシリアライザデータに基づいて実行し、検証が失敗した場合に保存を中止するいくつかの検証があります。私はperform_createメソッドの前に実行されるpre_saveを使用していますが、検証を行うことができますが、これらの検証に失敗した場合のserializer.save()の停止方法はわかりません。Django stop serialiserをCreateAPIViewで保存すると、pre_saveが上書きされる

私は、リクエストに応じて必要な詳細を記入することができます。私はCreateApiViewを使用することに全面的に避けられない限り固執したいと思います。

+0

使用しているDRFのバージョンはどれですか? DRF 3.xは 'pre_save()'関数を使わなくなりましたhttp://www.django-rest-framework.org/api-guide/generic-views/ – djq

答えて

0

あなたがpre_save()機能を使用している場合は、常にパースエラーを発生させることができ、シリアライザに誤りがある場合は、例外が発生しますserializer.is_valid(raise_exception=True)を呼び出し、任意の更なる実行からコードを停止することができるはず条件が満たされたときにトリガーされる例外:

from rest_framework import exceptions 
raise exceptions.ParseError({"error":["Something went wrong"]}) 
関連する問題