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

Ror*_*ory 3 django orm django-orm django-queryset

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

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

class Component(models.Model):
  parent = models.ForeignKey(Type)
Run Code Online (Sandbox Code Playgroud)

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

Dan*_*man 5

from django.db.models import Count
Type.objects.annotate(component_count=Count('component')).exclude(component_count=0)
Run Code Online (Sandbox Code Playgroud)