階層型リソースを備えた django-rest-framework REST API があります。/v1/objects/<pk>/subobjects/
POST でサブオブジェクトを作成し、新しいサブオブジェクトの外部キーをpk
、ペイロードに入れることなく、URL から kwargに自動的に設定できるようにしたいと考えています。現在、シリアライザーは外部キーがペイロードにあると想定しているため、400 エラーを引き起こしていますobject
が、それもオプションと見なすべきではありません。サブオブジェクトの URL は(それを識別するために親のキーは必要ないため) であるため、既存のリソース/v1/subobjects/<pk>/
が必要な場合でも必要です。PUT
/v1/subobjects/
サブオブジェクトを追加するためにペイロードに親を付けてPOST するようにする必要がありますか、pk
それとも URL からシリアライザーに kwarg を渡すクリーンな方法がありますか? 私は使用HyperlinkedModelSerializer
していますModelViewSet
私のそれぞれの基本クラスとして。これを行うための推奨される方法はありますか?これまでのところ、私が持っていた唯一のアイデアは、ViewSet を完全に再実装し、get_default_fields() が ViewSet から渡されたディクショナリから取得され、その kwargs によって取り込まれたカスタム Serializer クラスを作成することでした。これは、私が完全にありふれたものだと思っていた何かにかなり関与しているように見えるので、何かが欠けていると思わずにはいられません。私がこれまでに見た書き込み可能なエンドポイントを持つすべての REST API には、この種の URL ベースの引数推論があります。