gpt4 book ai didi

python - 级联的反向等价物是什么?

转载 作者:太空宇宙 更新时间:2023-11-03 14:34:00 26 4
gpt4 key购买 nike

我正在编写一个小型音乐数据库。学习 SQL 已经很久了,我一直想尝试一下 Django。但有一件事我无法理解。

现在,我的模型只包含两个类,AlbumSongSong 有一个外键指向它所属的专辑。现在,如果我要删除那个 Album,所有“属于”它的 Song 都会由于级联效应而被删除。

专辑在我的数据库中有点虚拟,只有歌曲在文件系统上实际表示并且专辑是根据歌曲标签构建的,因此我只能知道如果没有更多歌曲指向专辑则不再存在它(因为它们不再存在于文件系统中)。

或者简而言之,如何实现反向级联,也就是说,如果没有更多歌曲指向专辑,则该专辑也应该被删除?

最佳答案

您可以使用 pre_delete当歌曲被删除并且没有更多歌曲时,发出删除专辑的信号。

from yourapp.models import Album, Song
from django.db.models.signals import pre_delete

def delete_parent(sender, **kwargs):
# Here you check if there are remaining songs.
....

pre_delete.connect(delete_parent, sender=Song)

关于python - 级联的反向等价物是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5185563/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com