Django - 如何在不对源对象应用克隆更改的情况下克隆对象

时间:2016-09-09 19:53:44

标签: python django

最好用例子描述:

查看:

def my_view(request):
    obj_old = Inventories.objects.get(id = source_id)
    obj_new = obj_old 
    obj_old.some_field = 0
    obj_old.save()

    obj_new.some_field = 1
    obj_new.id = None
    obj_new.save()

问题是我对obj_new所做的更改也适用于obj_old,因此some_fieldobj_old的{​​{1}}值均为1。任何想法如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

您应该对对象进行复制,而不是使它们相等。

要制作副本,您可以使用复制模块

import copy

obj_new = copy.deepcopy(obj_old)