当我在使用序列化器嵌套的时候遇到了一个问题
#这是我的模型信息 一个订单中存在多个商品信息 是一对多关系,所以在商品信息中有一个ForeignKey用来关联订单
class Order(models.Model):
'''订单信息'''
order_code = models.CharField(max_length=36,verbose_name='订单编号',default=uuid.uuid4())
order_status = models.BooleanField(verbose_name='订单状态',default=False,help_text='0:未完成,1:已完成')
order_hostman = models.CharField(verbose_name='送货员姓名',default='张三',max_length=16)
order_hostman_tel = models.CharField(verbose_name='送货员手机号码',default='17797970000',max_length=11)
create_time = models.DateTimeField(auto_now_add=True,verbose_name='订单创建时间')
complete_time = models.DateTimeField(auto_now=True,verbose_name='订单完成时间')
# order_price = models.FloatField(verbose_name='订单支付金额')
order_phone = models.ForeignKey(Userinfo,verbose_name='订单所属人',on_delete=models.CASCADE)
class OrderItem(models.Model):
'''订单项信息'''
item_code = models.ForeignKey(Order,on_delete=models.CASCADE,verbose_name='商品所属订单关联外键')
commodity = models.CharField(max_length=32,verbose_name='食物名称')
commodity_quantity = models.IntegerField(verbose_name='商品数量',default=1)
commodity_price = models.FloatField(verbose_name='单价')
#这是我的序列化器
class orderItemSerializer(serializers.ModelSerializer):
# 重写返回字段使展示更直观
class Meta:
model = OrderItem
fields = ['commodity',"commodity_quantity","commodity_price","item_code"]
class orderSerializer(serializers.ModelSerializer):
# orderitem_set = serializers.PrimaryKeyRelatedField(read_only=True, many=True)
orderitem_set = orderItemSerializer(many=True,read_only=True)
class Meta:
model = Order
fields = '__all__'
depth = 1
#这是我的views.py中这个视图
class Checkout(views.APIView):
def get(self,request):
'''获取下单信息'''
# 获取从中间件中封装的用户信息
cache = caches['id_code']
# print(request.META.get('HTTP_AUTHORIZATION'))
userphone = cache.get(request.META.get('HTTP_AUTHORIZATION'))
user = Userinfo.objects.filter(tel_phone=userphone).first() #通过传递过来的用户信息获取用户实例化对象
data = Order.objects.filter(order_phone=user) #获取这个用户的所有订单信息
ser_list = orderSerializer(instance=data, many=True) #对订单信息进行序列化
return Response({"code":200,"msg":'成功',"data":ser_list.data})
这是我发送请求后收到的数据样式,
希望有人能来帮帮我