python - 如何过滤Django中相关对象的相关对象?
问题描述
想象一个数据模型,其中:
class Album(models):
name = models.CharField
class Song(models):
albums = models.ManyToManyField(related_name="albums")
class Word(models):
songs= models.ManyToManyField(related_name="songs")
category = model.Charfield() # can be "friendly", "expletive", etc.
即一张专辑有很多歌曲,而一首歌可以出现在几张专辑中。那么一首歌由很多词组成,同一个词可以出现在多首歌曲中。
我想构建一个查询集,其中包含类别为“友好”的所有单词,并且属于专辑的所有歌曲。
解决方案
尝试这个:
Word.objects.filter(category='friendly', songs__albums__name__contains='freedom')
您可能需要编写自己的模型管理器(查看文档:https ://docs.djangoproject.com/en/3.2/topics/db/managers/ )。
推荐阅读
- amazon-web-services - .tfstate 中的完整配置有什么意义?
- r - 修复一个函数以运行 x:y 而不是仅 1:y
- mysql - 我已经尝试过任何方法。无法授予超级特权我尝试设置 log_bin_trust_function_creators
- swift - Swift 将 makeConnectable 与 PassthroughSubject 结合起来
- r - 安装 R 包 'statnet.common' 时编译失败
- r - 从 Github 安装 R 包的问题(非零退出状态?)
- python - sqlalchemy-datatables TypeError:Customer类型的对象不是JSON可序列化的
- python - Python Map、Lambda 和 string.replace
- google-apps-script - 谷歌表格如何制作粘贴相对范围的宏
- python - 对 mysql 数据库密码和主机使用环境变量会引发错误