在下面的模型中,当通过管理员删除艺术家时,它将确认并删除所有相关歌曲。但是,当我通过管理员删除歌曲时,如果歌手在歌曲中没有更多相关项目,我也想要删除歌手。在Admin中是否有一个模型选项?Django在另一个模型中删除一个没有更多相关ForeignKey项目的模型实例?
这应该如何在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
您可能想使用'pre_delete'信号删除艺术家 – karthikr