Django在另一个模型中删除没有更多相关ForeignKey项的模型实例?

时间:2016-04-21 20:13:08

标签: python django

在下面的模型中,当通过管理员删除艺术家时,它将确认并删除所有相关的歌曲。但是,当我通过管理员删除歌曲时,如果艺术家在歌曲中没有更多相关项目,我也想删除艺术家。管理员中是否有此模型选项?

如何在不在ModelAdmin内的自定义视图中完成此操作?

class Artist (models.Model):
    name = models.CharField(max_length=100)

    def __str__(self):
        return self.name

class Genre (models.Model):
    name = models.CharField(max_length=100)
    def __str__(self):
        return self.name

class Song (models.Model):    
    artist = models.ForeignKey(Artist, on_delete=models.CASCADE)
    genre = models.ForeignKey(Genre, null=True, blank=True, on_delete=models.SET_NULL)
    title = models.CharField(max_length=100)
    mix = models.CharField(max_length=100, blank=True)

    def __str__(self):
        return self.title

1 个答案:

答案 0 :(得分:0)

可以通过delete的{​​{1}}方法执行此操作。

Song

或类似的东西。