xtr*_*0rt 3 python django serialization json django-rest-framework
我对 Django REST Framework 嵌套序列化程序有点不满。
我有一个名为 ProductSerializer 的序列化程序。它是一个 serializers.ModelSerializer 并在单独使用时正确产生以下输出:
{'id': 1, 'name': 'name of the product'}
我正在构建一个购物车/篮子功能,我目前有以下类:
class BasketItem:
def __init__(self, id):
self.id = id
self.products = []
Run Code Online (Sandbox Code Playgroud)
和一个序列化器:
class BasketItemSerializer(serializers.Serializer):
id = serializers.IntegerField()
products = ProductSerializer(many=True)
Run Code Online (Sandbox Code Playgroud)
我有一个涉及以下代码的测试用例:
products = Product.objects.all() # gets some initial product data from a test fixture
basket_item = BasketItem(1) # just passing a dummy id to the constructor for now
basket_item.products.append(products[0])
basket_item.products.append(product1[1])
ser_basket_item = BasketItemSerializer(basket_item)
Run Code Online (Sandbox Code Playgroud)
上面的产品是一个models.Model。现在,当我做
print(ser_basket_item.data)
{'id': 1, 'products': [OrderedDict([('id', 1), ('name', 'name of the product')]), OrderedDict([('id', 2), ('name', 'name of the product')])]}
Run Code Online (Sandbox Code Playgroud)
我的期望更像是:
{
'id': 1,
'products': [
{'id': 1, 'name': 'name of the product'}
{'id': 2, 'name': 'name of the product'}
]
}
Run Code Online (Sandbox Code Playgroud)
你觉得我哪里做错了?
| 归档时间: |
|
| 查看次数: |
796 次 |
| 最近记录: |