Django REST Framework:反序列化对象列表

2024-09-30 01:32:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我想接受如下JSON数据:

{
    'id': 166,
    'data_lines': [
        {
            'name': 'string',
            'quantity': '1',
            'id': '1'
        },

        {
            'name': 'string',
            'quantity': '2',
            'id': '12'
        },

        {
            'name': 'string',
            'quantity': '3',
            'id': '18'
        }
    ],
}

我想通过反序列化数据来构建一个简单的购物篮

问题是,在这一点上,我有三个涉及的序列化程序。在

在其中一个例子中,我们称之为MiddleSerializer,我有:

^{pr2}$

我只想给ThingsSerializer一个传入的id,让它自己处理。当我通过一个有关键“东西”的口述时,一切都很顺利。在

但是,我希望能够有一个列表,并且我有一个序列化程序,这个中间序列化程序嵌套在里面。如下所示:

class TopSerializer(serializers.Serializer):
    some_other_id = serializers.IntegerField()
    things = serializers.ListField(child=MiddleSerializer())
    # I also tried the above with (many=True)

但是当我传递这个topserizer我的数据时,它会给我一个关于缺少关键字'thing'的错误,这是必需的。在

我应该如何设置序列化程序以便传递数据列表?我觉得我可以用某种方式利用PrimaryKeyRelatedField(),因为ThingSerializer()是ModelSerializer。但是我发现文档中有点不清楚如何从非模型序列化程序中使用它,我不确定它是否能起到作用。很有可能。在


Tags: 数据name程序idjson列表datastring

热门问题