要在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,仅用于克隆?