我正在尝试序列化 Shift 类型的模型实例,但出现错误。


shift = models.Shift.objects.get(pk=8)
ser = serializers.ShiftSerializer(many=False, data=shift)
ser.is_valid()

ShiftSerializer 是一个 ModelSerializer。
如果我使用 filterallmany=True 获得类次,这将起作用。

解决方案:
shift = models.Shift.objects.get(pk=8)
ser = serializers.ShiftSerializer(shift)

最佳答案

data 参数用于反序列化,而不是序列化。您应该将模型实例作为位置参数传递。

obj = serializers.ShiftSerializer(shift)

请注意,无需指定 many=False,这是默认设置。此外,在从模型实例构建的序列化程序上调用 is_valid() 没有意义;再次,那是为了反序列化。

关于python - Django REST 序列化单个模型实例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32329751/

10-15 11:43