我正在尝试序列化 Shift
类型的模型实例,但出现错误。
'Shift' object has no attribute 'get'
shift = models.Shift.objects.get(pk=8)
ser = serializers.ShiftSerializer(many=False, data=shift)
ser.is_valid()
ShiftSerializer 是一个 ModelSerializer。
如果我使用 filter
和 all
和 many=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/