我对Django 2.1和on_delete必填字段有疑问。
我有一个这样的ORM:
class Slideshow(models.Model):
bla bla
dashboards = models.ManyToManyField(
Dashboard,
through='SlideshowDashboard',
through_fields=('slideshow','dashboard')
)
class SlideshowDashboard(models.Model):
dashboard = models.ForeignKey(Dashboard, on_delete = CASCADE)
slideshow = models.ForeignKey(Slideshow, on_delete = CASCADE)
slide_time_dashboard = models.DurationField(null = True, blank = True)
slide_order = models.IntegerField(null = True, blank = True)
仪表板是另一个模型。
更新有关幻灯片放映的信息时,我需要截断与幻灯片放映相关的所有以前的仪表板以保存新列表。
所以我用:
slideshow_to_save.dashboards.all().delete()
不幸的是,我不知道为什么,此命令删除了Dashboard表中与Dashboard相关的条目。
具体来说,如果我删除仪表板,on_delete应该删除SlideshowDashboard,而不是相反。