2016-12-02 61 views
5

我有以下的Django模型。Django select_related filter

class A(models.Model): 
    tmp = models.ForeignKey(B) 
    active = models.BooleanField() 

class B(models.Model): 
    active = models.BooleanField() 
    archived = models.BooleanField() 

現在我有以下查詢。

A.objects.select_related(B).filter(active=True) 

現在這個取B的所有對象現在,我怎麼能包括active=Truearchived=False爲模型Bselect_related子句中的過濾器。

回答

10

一樣,你會與其他相關領域,以__查找..

A.objects.select_related(B).filter(active=True, tmp__active=True, tmp__archived=False) 

使用選擇與不改變任何東西,其目的是對與返回的結果是什麼信息,它根本不影響過濾。