【发布时间】:2010-12-04 20:00:36
【问题描述】:
我遇到了问题,因为我正在使用 some_widget_instance.delete() 删除小部件。我还有一个名为 WidgetFile 的模型,它带有一个覆盖 delete() 方法,这样当一个 WidgetFile 被删除时,我就可以从我的硬盘上删除文件。我遇到的问题是,如果我删除一个小部件,并且它有与之相关的 WidgetFiles,如下所示:
class WidgetFile(models.Model):
widget = models.ForeignKey(Widget)
好吧,当我删除那个 Widget 时,它的 WidgetFiles 被删除了,但是 delete() 方法并没有触发并做我额外的硬盘驱动器的事情。非常感谢任何帮助。
【问题讨论】:
-
出现这个问题的原因是当一个小部件被删除时,它不会触发它的每个依赖项(具有对其的外键引用的类)的 delete() 方法。它只是从数据库中删除相关对象。这使它更有效率,但显然会导致这样的问题。
标签: python django django-models overloading