Python Django:ManyToManyField中*all*值的queryset筛选器
嗨(对不起我的英语不好:p) 想象一下这些模型:Python Django:ManyToManyField中*all*值的queryset筛选器,python,sql,django,django-models,django-queryset,Python,Sql,Django,Django Models,Django Queryset,嗨(对不起我的英语不好:p) 想象一下这些模型: class Fruit(models.Model): # ... class Basket(models.Model): fruits = models.ManyToManyField(Fruit) 现在我想检索与所有水果相关的篮子实例。 问题是下面的代码返回与任何水果相关的篮子实例: 有什么办法可以解决这个问题吗 非常感谢。:) 我手头没有数据集来测试这一点,但我认为它应该可以工作: Basket.objects.annot
class Fruit(models.Model):
# ...
class Basket(models.Model):
fruits = models.ManyToManyField(Fruit)
现在我想检索与所有水果相关的篮子实例。
问题是下面的代码返回与任何水果相关的篮子实例:
有什么办法可以解决这个问题吗
非常感谢。:) 我手头没有数据集来测试这一点,但我认为它应该可以工作:
Basket.objects.annotate(num_fruits=Count('fruits')).filter(num_fruits=len(Fruit.objects.all()))
它用相关水果的数量注释每个篮子对象,并过滤掉水果数量等于水果总量的篮子
注意:您需要Django 1.1才能工作
Basket.objects.annotate(num_fruits=Count('fruits')).filter(num_fruits=len(Fruit.objects.all()))