Django中class A
的某个对象的通常副本如下所示:
obj = A.objects.get(...) # get the object
obj.id = None
obj.save()
但是,如果class A
的外键有些class B
,那么副本将引用与初始对象相同的对象,这有时会破坏约束。
如何使django以递归方式复制所有引用的对象?
我想它看起来像这样:
def duplicate(obj):
obj.id = None
obj.save()
refs = ? # somehow get the inner objects which are foreign keys
for inner_obj in refs:
duplucate(inner_obj)
obj = A.objects.get(...) # get the object
duplicate(obj)