相关疑难解决方法(0)

限制来自 Django QuerySet 的结果数量,而不使用切片

限制从 Django 查询集返回的结果集的方法是通过数组切片完成的。例如,要获取前 5 个人:

People.objects.all()[0:5]
Run Code Online (Sandbox Code Playgroud)

或者,要按名称订购它们:

People.objects.order_by(name)[0:5]
Run Code Online (Sandbox Code Playgroud)

或按姓名排序,但仅限 65 岁以上的人:

People.objects.order_by(name).filter(age__gt=65)[0:5]
Run Code Online (Sandbox Code Playgroud)

事实上,对于没有函数的查询集,我能想到的唯一活动是限制。

我想知道的是,是否有一种方法(内部的、文档化的或其他方式)可以在QuerySet作为限制或切片的 a上调用?如果没有,这样做的最佳方法是什么?


笔记:

  • 是的,这可能是个坏主意,不,我不是很热衷于实施它,但如果有充分的理由去做,可以吗?
  • 是的,我知道切片是懒惰地执行的,这不是我要问的。
  • 这不是这个问题的重复,正如接受的答案所说:

    不要results[:max_count]在视图中,后.order_by()

python django

6
推荐指数
1
解决办法
2442
查看次数

标签 统计

django ×1

python ×1