rest_框架序列化程序上json的ListSerializer

2024-10-03 11:26:44 发布

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

我想像这样返回json

{"texts":[
    "string1
    "string2"
    "string3"
]}

一个简单的索引textslist

我的目标在这里

class Task(object):
    def __init__(self, texts, created=None):
        self.texts = texts
        self.created = created or datetime.now()    

问题是序列化程序,因为textslist,所以我需要使用ListSerializer

所以我做了这个,但是在序列化文本之后字段是空的

class TextsSerializer(serializers.Serializer):
    serializers.CharField(max_length=200) # There's something wrong....??

class TaskSerializer(serializers.Serializer):
    texts = TextSerializer(many=True)
    created = serializers.DateTimeField()

谢谢你的回复

我的解决方案就在这里

删除类TextSerializer,然后像这样更改TaskSerializer

class TaskSerializer(serializers.Serializer):
    texts = serializers.ListField(child=serializers.CharField(max_length=200))
    created = serializers.DateTimeField()

Tags: selfjson序列化lengthmaxlistclasscharfield
3条回答

使用^{} (DRF doc)

class TextSerializer(serializers.Serializer):
    text = serializers.ListField(child=serializers.CharField(max_length=200))

您没有将字段分配给任何变量

class TextSerializer(serializers.Serializer):
    text = serializers.CharField(max_length=200)
    # ^ here

将序列化程序.序列化程序更改为序列化程序.列表字段

class TextSerializer(serializers.ListField):
    serializers.CharField(max_length=200)

相关问题 更多 >