我有以下模型:
One
name (Char)
Many
one (ForeignKey,blank=True,null=True)
title (Char)
我想删除一个One实例,所有相关对象都应该失去与One实例的关系。目前我的代码如下所示:
one=One.objects.get(<some criterion>)
more=Many.objects.filter(one=one)
for m in more
m.one=None
m.save()
#and finally:
one.delete()
代码有什么作用?它找到应该删除的对象,然后搜索相关对象,将它们的 ForeignKey 设置为 None,最后删除One实例。但是在该进程的某个地方,它还设法杀死进程中的所有相关对象(许多实例)。我的问题是:为什么这些相关对象会被删除,我该如何防止呢?