我有多个相关模型。给定的Work
对象Crew
由Person
和/或Company
及其给定的Role
定义。我想构建一个有效的查询,返回给定Crew
实例的给定Role
实例的所有项目(不同)...
class Work(models.Model):
title=models.CharField(max_length=128)
class Crew(models.Model(models.Model):
work=models.ForeignKey(Work)
person=models.ForeignKey(Person)
company=models.ForeignKey(Company)
role=models.ForeignKey(Role)
个别记录都有一个slug
字段用于识别。 (Person
,Company
,Role
)
对于给定的Person
,我查询Company
或Work
时遇到问题,但添加Role
是我丢失的地方。< / p>
EG。 works = works.filter(crew__person__slug=person_slug).distinct()
很容易
我是否使用Q对象?
错误......也许它就像works = works.filter(crew__person__slug=person_slug,crew__role__slug=role_slug).distinct()
我认为OP只回答了他自己的问题......
答案 0 :(得分:0)
所以是的,我在问题胡言乱语中回答了我自己的问题,但它仍然有用。我没有使用Q对象。
works = works.filter(crew__person__slug=person_slug,crew__role__slug=role_slug).distinct()