Django 2.1-ManyToMany on_delete

时间:2018-11-14 14:13:42

标签: django

我对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,而不是相反。

0 个答案:

没有答案