【问题标题】:how to clone full inheritance tree model如何克隆完整的继承树模型
【发布时间】:2018-11-24 03:25:57
【问题描述】:

通常,如果要克隆模型对象。它发生如下:

class ModelA():
     field

obj = ModelA.objects.get(id=1)
obj.id = None
obj.save()

在这里,它将使用新 id 保存克隆对象。

但是如何克隆完整的继承树。

class ModelA():
     field

class ModelB(ModelA):
     field

obj = ModelA.objects.get(id=1)

现在如果我们这样做,只有 ModelA 将被克隆到 db 中,但是如何克隆 Model B 也与 obj 具有相同的 ptr id。

我试过了,

obj.ModelB.ptr_id = None
obj.ModelB.save()

没有任何作用。

【问题讨论】:

    标签: django django-models python-3.5


    【解决方案1】:

    会这样。

    obj.ModelB.id = None
    obj.ModelB.ptr_id = None
    obj.ModelB.save()
    obj.save()
    

    【讨论】:

      猜你喜欢
      • 2013-04-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-26
      • 2019-01-15
      • 2020-06-26
      • 2019-11-18
      • 1970-01-01
      相关资源
      最近更新 更多