在 Django 查询中提供 LIMIT 参数,而不获取 QuerySet 的切片

Kry*_*ski 5 sql django django-queryset

我的程序中有一个用于搜索实体的实用函数。它需要一个max_count参数。它返回一个查询集。

我希望这个函数能够限制最大条目数。标准方法是从我的查询集中取出一个切片:

return results[:max_count]
Run Code Online (Sandbox Code Playgroud)

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

是否可以在不进行切片的情况下强制将“LIMIT 1000”输入到我的 SQL 查询中?

DrT*_*rsa 2

results[:max_count]在视图中执行后.order_by()。不要害怕向数据库请求太多,直到切片(甚至在切片之后)才会评估查询。