0
我有多個相關模型。給定Work
對象具有Crew
,其由它們的Person
和/或Company
及其給定的Role
定義。我想建立一個返回所有項目(不同的),對於一個給定Crew
實例與給定Role
一個高效的查詢......Django多對多匹配多個條件
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
)
我沒有問題,查詢一個給定的Work
Person
或Company
但加入Role
是我迷路了。
例如, works = works.filter(crew__person__slug=person_slug).distinct()
很容易
我是否使用Q對象?
Errr ....也許這是那麼容易,因爲works = works.filter(crew__person__slug=person_slug,crew__role__slug=role_slug).distinct()
我覺得OP剛纔已經回答了自己的問題......
是的,如果我還記得針對M2M領域正確多個約束相同'filter'條款中都有這樣的更新的例子看起來我的權利,以匹配相同的相關對象。 –