私は、Django REST Frameworkと通常のフォームインターフェイスの両方からアクセス可能なモデルを持つDjangoアプリケーションを持っています。フォームインターフェイスには、モデルへの変更を保存する前にいくつかの妥当性チェックがありますが、特殊なDjangoフレームワークを使用するのではなく、ビューの単純なローカル変更だけです。別のフィールドの値に基づいてDjangoモデルフィールドを検証していますか?
フォームとREST呼び出しに同じ検証を適用したいので、検証をモデルに移したいと思います。フィールドのバリデーターフィールドを使用して単純なケースでそれを行う方法を見ることができますが、私は名前/タイプ/値モデルを持っています。バリデーターは、フィールドがあるモデルに関する情報を送信しないので、他のフィールドにアクセスすることはできません。
フォームのDRFとPOSTビューのシリアライザで本質的に同じコードを使用することなく、この検証を実行するにはどうすればよいですか?
どのオブジェクトにありますか? Modelベースのクラスではそういうことはありません。 – AnotherHowie
この回答は、DRFの 'ModelSerializer'サブクラスのコンテキストにあります。 Djangoモデルには 'clean_myfield'と' clean'メソッドの類似した状況があります。あなたはDRF経由でポストしているのですか? – wim
はい、いいえ。私はDRF APIを持っていますが、フォームが投稿するビューもあります。 – AnotherHowie