Post django rest框架-如何使用父对象发布嵌套对象
我有父对象顺序和嵌套对象顺序详细信息Post django rest框架-如何使用父对象发布嵌套对象,post,django-rest-framework,relation,Post,Django Rest Framework,Relation,我有父对象顺序和嵌套对象顺序详细信息 class Order(Model): order_name = CharField(max_length=10) class OrderDetails(Model): order_detail_name = CharField(max_length=10) order = ForeignKey('Order') 我想使用order对象本身获取/插入/更新/删除OrderDetails。 如果我发布这个json,它应该插入/
class Order(Model):
order_name = CharField(max_length=10)
class OrderDetails(Model):
order_detail_name = CharField(max_length=10)
order = ForeignKey('Order')
我想使用order对象本身获取/插入/更新/删除OrderDetails。
如果我发布这个json,它应该插入/更新这两个对象
{
"id": 10,
"order_name": "Some title",
"orderDetails": [{
"id": 15,
"order_detail_name": "Best Detail"
}]
}
就这些。无法找到任何解决方案。我是django/python的初学者
TIA我自己用更简单的两行程序解决了get问题
class OrderSerializer(serializers.ModelSerializer):
orderdetail_set = OrderDetailSerializer(many=true)
职位
现在它给出了预期的响应。:) 任何人都可以提供帮助吗?我不能在一个请求中发布几个孩子,我得到了
“无效数据。需要字典,但得到了列表。”
错误消息。就好像虽然我在父模型和子模型之间有着像您一样的多对一关系,但我无法在父对象中为子模型传递列表。你有没有做过什么特别的事情来处理这个问题,或者你以前遇到过这个错误?
def create(self, validated_data):
order_details_data = validated_data.pop('orderdetail_set')
order = Order.objects.create(**validated_data)
for order_detail_data in order_details_data:
order_detail_data['order'] = order
OrderDetail.objects.create(**order_detail_data)
return order