使用Django模型选择一个计数?

使用Django模型选择一个计数?,django,Django,有人知道有没有办法在Django中选择与查询匹配的行数?我编写了一个搜索,将结果分成40组,但我也希望显示结果的总数。我可以使用类似len(Model.objects.filter(name_uicontains=search))的东西,但这似乎效率非常低(因为我假设这将生成一个“SELECT*FROM Model”,然后生成所有结果对象)。有什么建议吗?使用: 有两种主要的处理方法: 使用-只需将count()附加到相应查询集的末尾 生成-聚合是指“检索通过汇总或聚合对象集合而派生的值” 以上

有人知道有没有办法在Django中选择与查询匹配的行数?我编写了一个搜索,将结果分成40组,但我也希望显示结果的总数。我可以使用类似len(Model.objects.filter(name_uicontains=search))的东西,但这似乎效率非常低(因为我假设这将生成一个“SELECT*FROM Model”,然后生成所有结果对象)。有什么建议吗?

使用:


有两种主要的处理方法:

  • 使用-只需将count()附加到相应查询集的末尾
  • 生成-聚合是指“检索通过汇总或聚合对象集合而派生的值”

  • 以上链接指向Django文档的适用部分。

    谢谢,aggregate做到了这一点。这有点奇怪;我必须做一个聚合(Count('id')).Count()(计算我的计数?)。不过,我很高兴,因为它希望只提取一个数字,而不是表中的所有数据。
    >>> Model.objects.count()
    42
    >>> Model.related_set.count()
    102
    >>> Model.related_set.filter(blah=42).count()
    3