如何在Django REST Framework中序列化“对象列表” [英] How to serialize an 'object list' in Django REST Framework

查看:137
本文介绍了如何在Django REST Framework中序列化“对象列表”的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要一个类似这样的序列化器:

I need a serializer for something like this:

{
    "items": {
        12: {
            "name": "item 1"
        },
        66: {
            "name": "item 2"
        }
    }
}

我应该如何声明我的序列化程序以获取类似内容?那是一个有效的JSON还是它应该是这样的?

How should I declare my serializers to get something like this? Is that even a valid JSON or should it look like this:

{
    "items": [
        {
            "name": "item 1",
            "id": 12
        }, {
            "name": "item 2"
            "id": 66
        }
    ]
}

? (12、66是这些项目的主键)
使用Django REST Framework 3。

? (12, 66 are primary keys of those 'items') Using Django REST Framework 3.

推荐答案

django rest framework 3中的ListField,您可以在此处查看文档 http:/ /www.django-rest-framework.org/api-guide/fields/#listfield

There is a ListField in django rest framework 3, you can check documentation here http://www.django-rest-framework.org/api-guide/fields/#listfield

对于您的示例,您可以执行以下操作:

For your example you can do something like this:

class ItemSerializer(serializers.Serializer):
    id = serializers.IntegerField()
    name = serializers.CharField()

class ItemsSerializer(serializers.Serializer):
    items = serializers.ListField(child=ItemSerializer())

后面的序列化器也可以是:

The later serializer can be also:

class ItemsSerializer(serializers.Serializer):
    items = ItemSerializer(many=True)

这篇关于如何在Django REST Framework中序列化“对象列表”的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆