use*_*893 3 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()
Run Code Online (Sandbox Code Playgroud)
ShiftSerializer是ModelSerializer.如果我使用filter和all和获得班次,这是有效的many=True.
解:
shift = models.Shift.objects.get(pk=8)
ser = serializers.ShiftSerializer(shift)
Run Code Online (Sandbox Code Playgroud)
该data参数用于反序列化,而不是序列化.您应该将模型实例作为位置arg传递.
obj = serializers.ShiftSerializer(shift)
Run Code Online (Sandbox Code Playgroud)
注意,不需要指定many = False,这是默认值.另外,调用is_valid()你从模型实例构造的序列化器是没有意义的; 再次,这是反序列化.
| 归档时间: |
|
| 查看次数: |
1522 次 |
| 最近记录: |