DRF中,我可以序列化一个本机Python对象,如下所示:

class Comment(object):
    def __init__(self, email, content, created=None):
        self.email = email
        self.content = content
        self.created = created or datetime.now()

class CommentSerializer(serializers.Serializer):
    email = serializers.EmailField()
    content = serializers.CharField(max_length=200)
    created = serializers.DateTimeField()

comment = Comment(email='leila@example.com', content='foo bar')
serializer = CommentSerializer(comment)
serializer.data

# --> {'email': 'leila@example.com', 'content': 'foo bar', 'created': '2016-01-27T15:17:10.375877'}

是否可以对使用ListSerializer的对象列表执行相同的操作?

推荐答案

您可以简单地为序列化列表添加many=True.

comments = [Comment(email='leila@example.com', content='foo bar'),
            Comment(email='leila1@example.com', content='foo bar 1'),
            Comment(email='leila2@example.com', content='foo bar 2')]
serializer = CommentSerializer(comments, many=True)
serializer.data

Django相关问答推荐

Django中的Sync_to_Async修饰器、异步视图

情节主题更改问题

源自访问外键关系的模型方法 get_absolute_url 的 django 重复 SQL 查询

Django 注释(),计数()

Django 转储数据将附加数据添加到 json 导出

data._mutable= 在 Django REST 框架中为真

包含资源时,DRF 返回我的软删除记录

Django 嵌套事务 - with transaction.atomic()

使用 south 重构具有继承的 Django 模型

Django InlineModelAdmin:部分显示内联模型并链接到完整模型

django-rest-framework 如何使模型序列化器字段成为必需

使用基于日期/时间的对象进行 Django 单元测试

重命名 django 元素的简单方法

Django:创建索引:非唯一,多列

带有 Django 和 Python 的 Atlassian Bamboo - 可能吗?

如何向所有 Django 响应添加 HTTP 标头

PyCharm 代码判断提示找不到模板文件,如何解决?

如何在字段集中显示 Django 管理内联模型?

如何过滤(或替换)在 UTF-8 中占用超过 3 个字节的 unicode 字符?

ModelForm 上的 Django 和字段集