我正在尝试序列化Shift
类型的模型实例,但是我收到了错误。
'Shift'对象没有属性'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)
答案 0 :(得分:7)
data
参数用于反序列化,而不是序列化。您应该将模型实例作为位置参数传递。
obj = serializers.ShiftSerializer(shift)
注意,不需要指定many = False,这是默认值。另外,在您从模型实例构造的序列化器上调用is_valid()
是没有意义的;再次,这是反序列化。