这似乎是一个简单的问题,但它从未在任何地方得到回答,也没有明显的答案。我有两个“级联”ManyToMany 模型:
用户要标记多对多:
class User (models.Model):
...
watches_tags = models.ManyToManyField(Tag, related_name='watched_tag_set', blank=True, null=True)
ignores_tags = models.ManyToManyField(Tag, related_name='ignored_tag_set', blank=True, null=True)
并且 Tag 具有 ManyToMany 的状态:
class Tag (models.Model):
tag = models.TextField ()
status = models.ManyToManyField (Status)
是否有一个 ORM 表达式可以为我提供所有标记有任何给定用户监视/忽略的标签的状态?我可以在逻辑中迭代标签并连接查询集,但我想在更复杂的基于 Q 表达式的查询中使用它,并且我希望将尽可能多的工作推送到数据库引擎。