考虑这些伪类:
class Foo(models.Model):
pass
class Bar(models.Model):
foo = models.ForeignKey(Foo)
我想通过 Foo 的管理器有效地过滤,以获得一个 QuerySet,它只保存 Foo 对象,至少有 2 个 Bar 对象指向它。
考虑这些伪类:
class Foo(models.Model):
pass
class Bar(models.Model):
foo = models.ForeignKey(Foo)
我想通过 Foo 的管理器有效地过滤,以获得一个 QuerySet,它只保存 Foo 对象,至少有 2 个 Bar 对象指向它。
使用聚合Count
:_
from django.db.models import Count
Foo.objects.annotate(bar_count=Count('bar')).filter(bar_count__gte=2)