如何在 Django 中序列化后构建对象

How to build object after serialize in Django

我正在按以下方式序列化模型的实例。

serialized_object = serializers.serialize ('json', [track,])

输出

   [{"model": "blog.track", "pk": null, "fields": {"album": null, "name": "Song 1", "lyrics": "", "song": "Z.mp3", "url_download": null, "length": "00:00:12"}}]

然后我保存序列化的对象,这样在一些任务结束时我可以将它保存在数据库中。我的问题是如何从序列化模型重建模型实例。以及如何在视图中获取序列化模型的字段?

稍微调查一下,阅读可以用这种方式反序列化和保存的Django文档

for obj in serializers.deserialize("json", serialized_object):
    print(obj.name)
    obj.save ()

但是我想获取该对象的值,但是在尝试它时出现以下错误

AttributeError: 'DeserializedObject' object has no attribute 'name'

如果您使用的是 django rest 框架,那么您不需要转换回对象。您可以在序列化程序 class 上使用 createupdate 方法,如前所述 here 在 db

中创建或更新

您收到此错误是因为文档表明您的对象包装在 DeserializedObject 中,因此请进行以下更改。

print (obj.object.name)