一尘不染

在Django查询中提供LIMIT参数而无需获取QuerySet的一部分

sql

我的程序中有一个实用程序功能,用于搜索实体。它需要一个max_count参数。它返回一个QuerySet。

我希望此功能限制最大条目数。标准方法是从QuerySet中切出一部分:

return results[:max_count]

我的问题是,通过使用,利用此功能的视图会以各种方式进行排序.order_by()。这会导致异常,因为在切片后不允许重新排序。

是否可以不进行切片就将“ LIMIT 1000”强加到我的SQL查询中?


阅读 445

收藏
2021-03-08

共1个答案

一尘不染

不要results[:max_count]在视图中,后.order_by()。不要担心从数据库请求太多,直到切片(甚至在切片之后)也不会评估查询。

2021-03-08