Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django rest框架中的嵌套对象_Django_Django Models_Django Rest Framework_Django Forms_Django Views - Fatal编程技术网

Django rest框架中的嵌套对象

Django rest框架中的嵌套对象,django,django-models,django-rest-framework,django-forms,django-views,Django,Django Models,Django Rest Framework,Django Forms,Django Views,我想为订购物品设计解决方案。我有创建订单的端点,但我需要在订单中有items对象。让我给你看看代码 class ItemModel(models.Model): name=models.CharField(最大长度=50) price=models.FloatField() 自由裁量=型号。CharField(最大长度=500) available=models.BooleanField(默认值=True) 类OrderModel(models.Model): phone=models.Char

我想为订购物品设计解决方案。我有创建订单的端点,但我需要在订单中有items对象。让我给你看看代码

class ItemModel(models.Model):
name=models.CharField(最大长度=50)
price=models.FloatField()
自由裁量=型号。CharField(最大长度=500)
available=models.BooleanField(默认值=True)
类OrderModel(models.Model):
phone=models.CharField(最大长度=20)
delevary_time=models.DateTimeField()
类别模型(models.Model):
order=models.ForeignKey(OrderModel,on_delete=models.CASCADE,related_name='order\m')
item=models.ForeignKey(ItemModel,on_delete=models.CASCADE,related_name='item')
我需要为我创建订单的端点。她知道我做了什么

类序列化程序(serializers.ModelSerializer): 类元: 模型 排除=[‘顺序’,] 深度=2 类OrderSerializer(serializers.ModelSerializer): cart=serializers.SerializerMethodField() 类元: 模型=订单模型 字段=['phone'、'state'、'delevalu_time'、'cart'] def获取车(自身、obj): cart=CartModel.objects.filter(订单号=obj.id) serializer=CartSerializer(cart,many=True) 返回序列化程序.data 这就是终点

      router.register('order', OrderViewSet, 'api-order')
{
    "phone": 124997988698,
    "delevary_time": "2020-07-17T19:34:00",
    "cart": [
        {
            "item": 1
        },
        {
            "item": 2
        }
    ]
}

当我发布json时,它不保存购物车,只保存订单电话和删除时间。如何同时保存购物车

类CartSerializer(serializers.ModelSerializer):
类元:
模型
排除=[‘顺序’,]
深度=2
类OrderSerializer(serializers.ModelSerializer):
order_m=CartSerializer(many=True)#添加此
类元:
模型=订单模型
字段=['phone'、'state'、'delevaluy\u time'、'order\u m']
def创建(自我验证的_数据):
购物车数据=已验证的数据.pop('order\u m')
order=OrderModel.objects.create(**已验证的_数据)
对于cart_数据中的c:
CartModel.objects.create(order=order,**c)
退货单

最好对外键使用嵌套序列化程序,但不要使用
SerializerMethodField
,因为它是只读的。如何操作?你能在这里给我一个cluefull示例吗->它给我这个错误
python最初的异常文本是:“OrderModel”对象没有属性“cart”我发现它保存了模型,但Get请求中存在问题。我不知道怎么走!!。。此外,在Post请求中,它保存模型并显示错误消息