/customers/<id>/orders
を使用して新しい注文を作成するために、「ネストされた」URL を使用したいと考えていますPOST
。customer_id
リクエストの url に基づいて関連する注文を取得したいと思い<id>
ます。
Order
モデルには、モデルにcustomer = ForgeinKey(Customer,..)
関連するフィールドがありCustomer
ます。
これまでの私のアプローチは次のとおりです。
- の作成
OrderSerializer
create()
Model オブジェクトの作成に使用する- からの作成中に顧客 ID を取得する
self.context['request'].get_full_path()
と、完全な URL パスが返されます - を使用して顧客IDに基づいて顧客オブジェクトを取得する
customer_id = self.context['request'].get_full_path().split('/')[2]
customers = Customer.objects.get(id=customer_id)
customers.id
Order のcustomer_id
フィールドに を割り当てる
このソリューションは機能しますが、非常に汚いようです。より良い方法はありますか?
さらに詳細が必要な場合はお知らせください。
ありがとう!