Django反序列化为模型实例而不保存到数据库

时间:2019-05-29 06:59:18

标签: python django serialization

我想将一个对象序列化为Json,然后将其反序列化为该对象,而不将其保存到DB(它已经保存)。原因是模型的当前状态可能与序列化时的状态不同。

这是我当前序列化对象的方式:

ser_obj = serializers.serialize("json", [self.instance])

现在,据我了解,为了反序列化,我可以执行以下操作:

for obj in serializers.deserialize("json", ser_obj):
    obj.save()

但是那会将对象保存到DB,我不想这么做。 我想我也可以做类似的事情:

MyModel(field1 = ser_obj['field1'],
        field2 = ser_obj['field2']
       )

但是这似乎是错误的。 所以有什么主意,如何在不保存到数据库的情况下将json对象反序列化为Django模型?

我确实注意到,如果我使用'save()',则可以使用obj.object来获取对象。

1 个答案:

答案 0 :(得分:0)

您可以反序列化而不保存到数据库。

for obj in serializers.deserialize("json", ser_obj):
    do_something_with(obj)

这将返回 DeserializedObject 实例。您可以在Django docs

中找到更多信息。