Как сериализовать список экземпляров модели? - PullRequest
0 голосов
/ 05 апреля 2020

У меня есть список лексем. Мне нужно сериализовать его (например, здесь ):

lexemes = [Lexeme('a', 'b', 'c'), Lexeme('d', 'e', 'f')]
serializer = LexemeSerializer(data=lexemes, many=True)
if serializer.is_valid():
    return Response(serializer.validated_data)
else:
    return Response(
        serializer.errors,
        status=status.HTTP_400_BAD_REQUEST
    )

Мой ответ

[{"non_field_errors": ["Недопустимые данные. Ожидается словарь, но получил Lexeme. "]}, {" non_field_errors ": [" Неверные данные. Ожидал словарь, но получил Lexeme. "]}]

class Lexeme(models.Model):
    lemma = models.CharField(max_length=30)
    part_of_speech = models.CharField(max_length=30)
    endings = models.CharField(max_length=30)

class LexemeSerializer(serializers.ModelSerializer):
    class Meta:
        model = Lexeme
        fields = '__all__'

Разница между моим кодом и Код из указанного вопроса я использую модель сериализатора. Это причина ошибки? Как я могу это исправить?

1 Ответ

0 голосов
/ 05 апреля 2020

Я не уверен, что ModelSerializer принимает список экземпляров с опцией many=True.

В качестве аргумента data для serializer = LexemeSerializer(data=lexemes, many=True), вам нужно передать queryset.

...