2009-10-09 27 views
2

我有以下型號:在Django QuerySet中,如何檢查ManyToMany字段中的特定對象?

class Topping(models.Model): 
    ... 

class Pizza(models.Model): 
    toppings = models.ManyToManyField(Topping) 

然後我有一個一流的對象:

cheese = Topping.objects.get(name='cheese') 

然後我發現所有的比薩與奶酪用下面的查詢摘心:

Pizza.objects.all().filter(toppings=cheese) 

上述似乎工作,但這是做到這一點的正確方法?

回答

9

是的,雖然all()是多餘的。

或者,以避免額外的查詢來獲取奶酪對象,你可以使用標準的雙下劃線的語法來遍歷關係:

Pizza.objects.filter(toppings__name='cheese') 
相關問題