django rest framework - 如何使用父对象POST嵌套对象

时间:2016-06-08 22:19:49

标签: post django-rest-framework relation

我有父对象顺序和嵌套对象orderDetail。

class Order(Model):
     order_name = CharField(max_length=10)

class OrderDetails(Model):
     order_detail_name = CharField(max_length=10)
     order = ForeignKey('Order')

我想用订单对象本身获取/插入/更新/删除OrderDetails。 如果我发布这个json,它应该插入/更新两个对象。

{
    "id": 10,
    "order_name": "Some title",
    "orderDetails": [{
         "id": 15,
         "order_detail_name": "Best Detail"
     }]
}

多数民众赞成。无法找到任何解决方案。我是django / python的初学者。

TIA

1 个答案:

答案 0 :(得分:4)

我解决了我自己使用更简单的两个衬垫问题。

class OrderSerializer(serializers.ModelSerializer):
   orderdetail_set = OrderDetailSerializer(many=true)

POST

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    

现在按预期给出回应。 :)