我有一个词素列表。我需要对其进行序列化(如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__'
我的代码与我使用模型序列化程序的引用问题的代码之间的区别。是错误原因吗?我该如何解决?
答案 0 :(得分:0)
我不确定ModelSerializer
是否接受带有many=True
选项的实例列表。
作为data
的{{1}}参数,您需要传递一个serializer = LexemeSerializer(data=lexemes, many=True)
。