如何克隆完全继承树模型

时间:2018-06-14 11:02:11

标签: django django-models python-3.5

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

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中克隆,但是如何克隆模型B也具有与obj相同的ptr id。

我尝试过使用,

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

无效。

1 个答案:

答案 0 :(得分:0)

将会这样完成。

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