【问题标题】:Django - how do I clone object without applying clone changes to source objectDjango - 如何在不对源对象应用克隆更改的情况下克隆对象
【发布时间】:2017-01-18 00:50:19
【问题描述】:

最好的例子:

查看:

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_field 的值对于obj_oldobj_new 都是1。任何想法如何解决这个问题?

【问题讨论】:

    标签: python django


    【解决方案1】:

    您应该为您的对象制作一个副本,而不是让它们相等。

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

    import copy
    
    obj_new = copy.deepcopy(obj_old)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-07
      • 2016-02-21
      • 2013-01-03
      • 2017-02-11
      • 2011-07-10
      • 1970-01-01
      相关资源
      最近更新 更多