【发布时间】:2021-06-24 09:47:11
【问题描述】:
我想使用“嵌套”网址/customers/<id>/orders 来使用POST 创建新订单。我想根据请求的url<id>获取相关订单的customer_id。
Order 模型有一个与Customer 模型相关的customer = ForgeinKey(Customer,..) 字段。
到目前为止,我的方法是:
- 创建
OrderSerializer - 使用
create()创建模型对象 - 在创建过程中从
self.context['request'].get_full_path()获取客户ID,返回完整的url 路径 - 使用基于客户 ID 获取客户对象
customer_id = self.context['request'].get_full_path().split('/')[2]
customers = Customer.objects.get(id=customer_id)
- 将
customers.id分配给订单的customer_id字段
此解决方案有效,但似乎非常肮脏。有没有更好的办法?
如果需要更多详细信息,请告诉我。
谢谢!
【问题讨论】:
标签: django django-rest-framework nested-urls