簡體   English   中英

Object 序列化后數據變空

[英]Object data becomes empty after serializing

    user = User.objects.filter(id=payload['id']).first()

carts = AddToCart.objects.filter(user=user)

sum_price = 0
for i in carts:
    sum_price += int(i.product.price)

context = {
    'carts': carts,
    'sum_price': sum_price,
}
print(context)

serializer = AddToCartSerializer(context, many=True)
return Response(serializer.data)

**終端中打印的“上下文”看起來像這樣 {'carts': <QuerySet [<AddToCart: AddToCart object (3)>]>, 'sum_price': 100}。 但是在序列化之后它變成了空的。 有人能幫我嗎? **

這是 postman 中的 output

[
{},
{}
]

添加到購物車模型.py

class AddToCart(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
product = models.ForeignKey(Product, on_delete=models.CASCADE)

AddToCartSerializer 序列化程序.py

class AddToCartSerializer(serializers.ModelSerializer):
user = serializers.ReadOnlyField(source='User')
product = serializers.ReadOnlyField(source='Product')

class Meta:
    model = AddToCart
    fields = ['user', 'product']

試試下面的代碼。

意見.py:

# context = {
#    'carts': carts,
#    'sum_price': sum_price,
# }
print('result1', carts)
serializer = AddToCartSerializer(carts, many=True)
data = {
    'carts': serializer.data,
    'sum_price': sum_price,
}
print('result2', data)
return Response(data)

序列化器.py:

class AddToCartSerializer(serializers.ModelSerializer):
    class Meta:
        model = AddToCart
        fields = ['user', 'product']
        read_only_fields = ['user', 'product']

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM