在django中有效地计算过滤器查询

时间:2010-05-25 08:23:17

标签: python django django-models

Django新手在这里,我需要对django模型中的某个过滤器进行计数。如果我这样做:my_model.objects.filter(...)。count()我猜它会执行检索所有行的SQL查询,然后才进行计数。据我所知,在没有像“SELECT COUNT(*)FROM ...”那样检索那些行的情况下进行计数会更有效率。有没有办法在django中这样做?

1 个答案:

答案 0 :(得分:2)

  

我猜它会检索所有行的SQL查询,之后只计算

这是错误的假设。来自Django query set API reference count()

  

count()在幕后执行SELECT COUNT(*)

通常,QuerySets are lazy - 创建QuerySet的行为不涉及任何数据库活动。您可以整天将过滤器堆叠在一起,在评估QuerySet之前,Django实际上不会运行查询。