我想将一个对象序列化为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来获取对象。
答案 0 :(得分:0)
您可以反序列化而不保存到数据库。
for obj in serializers.deserialize("json", ser_obj):
do_something_with(obj)
这将返回 DeserializedObject 实例。您可以在Django docs
中找到更多信息。