2009-10-09 54 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') 
相关问题