python - Django - 通过相关字段由另一个查询集过滤查询集
问题描述
假设我有以下两个模型,并且我想获取所有开发者的查询集,这些开发者拥有平台字段匹配某个值的游戏。我该怎么做呢?
class Developer(models.Model):
name = models.CharField(max_length=100, default="Unknown")
class Game(models.Model):
name = models.CharField(max_length=300)
developer = models.ForeignKey(Developer, related_name="games", on_delete=models.CASCADE)
platform = models.CharField(max_length=40)
我尝试了一些方法,但似乎无法弄清楚任何可行的方法。
解决方案
您可以通过以下方式查询:
Developer.objects.filter(games__platform='name-of-platform').distinct()
如果没有.distinct()
[Django-doc],如果他们为同一平台开发了多个 s,则会多次返回同一开发者。Game
如果这不是问题,您当然可以省略.distinct()
.
推荐阅读
- c# - 如何在 AnggleSharp 中获取元素的样式
- draw.io - 在draw.io中,如何将一个节点移动到另一个节点的前面?
- scala - 在 scala 2.13 中,如何在宏中使用实际的 TypeTag?
- r - 变量大小不等的分组条形图
- c# - 在 ASP.NET Core MVC 中实现身份验证时是否应该使用“IdentityUser”
- firebase - Firebase Analytics 如何计算 Web 应用中的新用户
- python-3.x - 如何解决 gensim mallet 问题?
- html - 如何将提交按钮放在彼此的html旁边
- react-hooks - 将数据从反应挂钩传输到对象数组
- apache-spark - pyspark 中的 ThreadPooling 似乎总结了数据帧的内容