0

/customers/<id>/ordersを使用して新しい注文を作成するために、「ネストされた」URL を使用したいと考えていますPOSTcustomer_idリクエストの url に基づいて関連する注文を取得したいと思い<id>ます。

Orderモデルには、モデルにcustomer = ForgeinKey(Customer,..)関連するフィールドがありCustomerます。

これまでの私のアプローチは次のとおりです。

  1. の作成OrderSerializer
  2. create()Model オブジェクトの作成に使用する
  3. からの作成中に顧客 ID を取得するself.context['request'].get_full_path()と、完全な URL パスが返されます
  4. を使用して顧客IDに基づいて顧客オブジェクトを取得する
customer_id = self.context['request'].get_full_path().split('/')[2]
customers = Customer.objects.get(id=customer_id)
  1. customers.idOrder のcustomer_idフィールドに を割り当てる

このソリューションは機能しますが、非常に汚いようです。より良い方法はありますか?

さらに詳細が必要な場合はお知らせください。

ありがとう!

4

2 に答える 2