如何序列化模型实例列表?

时间:2020-04-05 11:17:36

标签: django-rest-framework django-serializer

我有一个词素列表。我需要对其进行序列化(如here):

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 :(得分:0)

我不确定ModelSerializer是否接受带有many=True选项的实例列表。

作为data的{​​{1}}参数,您需要传递一个serializer = LexemeSerializer(data=lexemes, many=True)

相关问题