Django REST序列化单个模型实例

时间:2015-09-01 10:51:20

标签: python django django-rest-framework

我正在尝试序列化Shift类型的模型实例,但是我收到了错误。

  

'Shift'对象没有属性'get'

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

ShiftSerializer是ModelSerializer。 如果我使用filterall以及many=True获得班次,则此方法有效。

解决方案:

shift = models.Shift.objects.get(pk=8)
ser = serializers.ShiftSerializer(shift)

1 个答案:

答案 0 :(得分:7)

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

obj = serializers.ShiftSerializer(shift)

注意,不需要指定many = False,这是默认值。另外,在您从模型实例构造的序列化器上调用is_valid()是没有意义的;再次,这是反序列化。