DjangoとDRFの最新バージョンを使用しています。Django Restフレームワーク、ModelSerializersおよびカスタムフィールドの検証
私は解決策を見つけることができないかなり複雑な要件があります。私はそれを単純化しようとします。
私は2つのフィールドを持つモデルを持っているとしましょう。 field_a
およびfield_b
私はModelSerializer
を持っています。私はPOST
のフィールドでリクエストします。フィールドはモデルで検証され、次に2つのシリアライザ関数validate_field_a
とvalidate_field_b
に対して検証されます。すべては順調です。
今、私はそのモデルのメンバーではない3番目のフィールドを含むように私のPOST
要求をしたいと思います。 field_c
としましょう。私はデータベースにすべてを保存するシリアライザにカスタムdef create(self, validated_data):
を持っています。 field_c
へに関して
私はしたいと思います:
- カスタム、それを検証します。他の2つのフィールドと同じように。
- 全体の要求が成功するために必須であり、そうでない場合、私は必要なモデルのフィールドのいずれかをPOSTするのを忘れているかのように「フィールドが必要です」というエラーを発行する必要があります。
field_c
をとり、db内の全く異なるモデルの行に保存してください。
私はそれを回避するように見えることはできません。 field_c
をfields
メタに追加すると、field_c
が私のモデルに存在しないという例外がスローされます。私がフィールドにそれを含めなければ、私が実際にそこに入れたいと思っているvalidate_field_c
は呼ばえされません。
どうすればよいですか?
素晴らしいです。そのトリックをした。ありがとう。 – JasonGenX
うれしかった! –