ListSerializer для json в сериализаторах rest_framework - PullRequest
0 голосов
/ 23 января 2020

Я хочу вернуть json вот так,

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

Один простой индекс texts имеет list

мой объект здесь

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

Проблема в сериализаторе, потому что texts - это list, поэтому мне нужно использовать 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()

Ответы [ 3 ]

1 голос
/ 23 января 2020

Использование serializers.ListField - (DRF do c)

class TextSerializer(serializers.Serializer):
    <b>text = serializers.ListField(child=serializers.CharField(max_length=200))</b>
0 голосов
/ 23 января 2020

Вы не присвоили свое поле какой-либо переменной

class TextSerializer(serializers.Serializer):
    text = serializers.CharField(max_length=200)
    # ^ here
0 голосов
/ 23 января 2020

Изменить serializer.Serializer на serializers.ListField

class TextSerializer(serializers.ListField):
    serializers.CharField(max_length=200)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...