0

免責事項: 私は DRF/クラス ベース ビューの初心者です。

API に対するクライアントがリソースの ID を認識できない状況がありますが、そのリソースの一意の識別子 (その名前) は認識しています。

これは、クライアントが外部キーを持つ別のリソースを POST 経由で最初に送信する場合に問題になります。たとえば...クライアントは次のデータを送信します(信号はFKです):

{"signal_name": "signal1", "value": 5}

ただし、モデルは次のことを期待しています。

{"signal": 1, "value": 5}

カスタム post メソッドにself.CONTENT到達すると、既に検証済みで空です。

では、データが検証/拒否される前に、そのデータをどこで/どのように交換できますか?
カスタム検証方法は必要ですか?

ご提案ありがとうございます。

4

1 に答える 1

0

リソースの fields 属性と extra-fields 属性をいじってみましたが、間違っていると検証しないようにすることはできませんでした。そのため、「signal_name」フィールドのフィールドをモデルに追加し、post メソッドでシグナルの ID と一致させるだけで済みました。(ありがたいことに、この場合、Signal への強制されていない FK があったので、signal に値を与えるのを待つことができました)

誰かが実際にこれをより適切に行う方法を知っているかどうかを確認するために、数日間戻ってきます。また、ピザとトムの提案に感謝します!

于 2012-11-06T22:55:49.370 に答える