使用django-rest-framework序列化对象列表

bav*_*aza 23 django django-rest-framework

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'}
Run Code Online (Sandbox Code Playgroud)

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

Bip*_*ain 49

您只需为序列化列表添加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
Run Code Online (Sandbox Code Playgroud)

  • 以及如何取消列表的序列化? (8认同)