我想接受一个JSON数据,如下所示:
{
'id': 166,
'data_lines': [
{
'name': 'string',
'quantity': '1',
'id': '1'
},
{
'name': 'string',
'quantity': '2',
'id': '12'
},
{
'name': 'string',
'quantity': '3',
'id': '18'
}
],
}
我希望能够建立一个简单的购物篮,
问题是,在这一点上,我有三个序列化器涉及。
在其中一个,让我们称之为MiddleSerializer,我有:
class MiddleSerializer(serializers.Serializer):
thing = ThingSerializer()
我只想给ThingsSerializer传递一个传入的id,让它处理自己的东西。当我通过一个带有关键“东西”的法令时,一切都很好。
然而,我希望能够有一个这些的列表,我有一个序列化器,这个中间序列化器嵌套在里面。它看起来像下面:
class TopSerializer(serializers.Serializer):
some_other_id = serializers.IntegerField()
things = serializers.ListField(child=MiddleSerializer())
# I also tried the above with (many=True)
但是当我传递这个TopSerializer我的数据时,它给了我一个关于缺少关键字'thing'的错误,这是必需的。
我应该如何设置序列化器,以便我可以传递数据列表?我有一种感觉,我可以以某种方式利用PrimaryKeyRelatedField(),因为ThingSerializer()是ModelSerializer。但是我发现文档中关于如何从非模型序列化器使用它有点不清楚,我不确定它是否能达到目的。可能是吧
1条答案
按热度按时间j13ufse21#
事实证明,这更像是我思维过程中的一个错误。像下面这样使用JSON就可以了。