を入れて、PATCH:DjangoのRESTフレームワークPOSTのための外部キー項目をフィルタリングし、私はシンプルなModelSerializerを持って
class OfferViewSet(viewsets.ModelViewSet):
queryset = Offer.objects.all()
serializer_class = OfferSerializer
外部キーitem_givenは、ユーザーに外部キーを持つItemという別のモデルです。
django restフレームワークで生成されたフォームでは、新しいオファーを作成するときにitem_givenフィールドの項目を選択できます。しかし、私は、外部キーユーザーがrequest.userと等しい項目だけを選択できるようにしたいと思います。
シリアライザでdef_querysetを編集しようとしましたが、成功しませんでした。 これをどのように達成できますか?
私はアイテムを作成していないアカウントを持っていますが、すべてのアイテムを取得しています。
https://i.stack.imgur.com/bVfxo.png
は現在、私は、ID 3{
id: 1,
name: "asasd",
description: "sdffsd",
price_min: 123,
price_max: 234,
creation_date: "2016-11-15T17:35:11Z",
archived: false,
owner: 1,
category: 1,
image_set: [ ]
},
{
id: 2,
name: "sdfsdffiss",
description: "fsdfsd",
price_min: 124,
price_max: 1245,
creation_date: "2016-11-15T19:39:02.225543Z",
archived: false,
owner: 1,
category: 1,
image_set: [ ]
},
{
id: 8,
name: "Test",
description: "Test",
price_min: 123,
price_max: 234,
creation_date: "2016-11-15T20:42:34.492041Z",
archived: false,
owner: 3,
category: 1,
image_set: [
5
]
}
でユーザーにログインしていると私は、新しいオファーを作成するために行くとき、ひとつひとつのアイテムはitem_givenフィールドに表示
Iによって所有されていない場合、私はそれがエラーを上げる作ることができます:このように、あなたのようなものがあるでしょうitem_given__user "の代わりに" item_given__owner "を書きましたが、その理由は、外部キーがItemモデルのownerという名前になっていますが、リスト内のすべての項目を取得しているからです。ドロップダウンリストを示す画像を追加しました。 – Servietsky
追加した画像は壊れています。それにもかかわらず、返されたオファーをデバッグして、実際に 'item_given.owner'に別のユーザがいるかどうか確認できますか?実際にそうであれば私の唯一の推測は間違ったビューに当たっているか、あるいは他の奇妙な理由のために 'get_queryset'が実行されていないということです。 – lucasnadalutti
私はアイテムの出力を追加しました。 'get_queryset'が実行されない原因は何ですか? – Servietsky