如何在Django中深入克隆模型对象?

时间:2014-05-17 04:59:00

标签: python django django-models orm

要在Django中复制模型,我可以使用这个技巧:

object.pk=None;
object.save();

假设我有模型A,AB和ABC。 AB有A的外键,ABC有AB的外键。

现在,如果我想深入克隆一个A对象a,我必须这样做:

newa = deepcopy(a)
newa.pk=None
newa.save()

ab = AB.objects.get(a=a)
newab = deepcopy(ab)
newab.a = newa;
newab.pk=None
newab.save()

abc = ABC.objects.get(ab=ab)
abc.pk=None;
abc.ab=newab;
abc.save()

如果存在多个级别的关系,则会遇到很多麻烦。 有没有一种方便的方法来执行此操作,例如sql中的DELETE CASCADE,仅用于克隆?

0 个答案:

没有答案