python - Django REST 序列化单个模型实例

标签 python django django-rest-framework

我正在尝试序列化 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。 如果我使用 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/

相关文章:

python - Django 1.5 与 mongodb

python - Django Rest Framework 如何更新 SerializerMethodField

django - DRF APIView - 如何将帮助文本添加到自动生成的表单?

python - 如何在 PySide 和 Python 3.X 中将字节写入 QDataStream?

python - 数据存储属性错误: 'module' object has no attribute 'set_defaults'

python - 使用带有LinkedBrush的matplotlib mpld3的Json序列化错误

django - 如何让 django 使用它的模板系统显示空单元格?

python - python 中的 gsutil cp 通过 os.system

python - 具有数千个选择的 Django 选择字段创建数以千计的数据库查询

javascript - 我如何在 python django 中使用 REST 来执行多个任务