基于Django查询集中的外键字段的.count()进行过滤

时间:2011-11-09 17:10:24

标签: django orm django-queryset django-orm

所以我有一些像这样的Django 1.3模型:

class Type(models.Model):
  is_bulk = models.BooleanField()

class Component(models.Model):
  parent = models.ForeignKey(Type)

有些Type有0 Component,有些有1或2,等等。我如何编写一个QuerySet来过滤所有有>的Type? 0组件。即排除具有0个组件的类型?

1 个答案:

答案 0 :(得分:5)

from django.db.models import Count
Type.objects.annotate(component_count=Count('component')).exclude(component_count=0)