我有一个客户ListView,其查询相当昂贵。当在 a 中使用子查询时COUNT(*),Postgres 查询规划器的性能甚至更差。计数比检索结果慢约 20 倍(46 毫秒 vs 922 毫秒)。
我的问题是有没有办法禁用 的子类的计数查询ListView?在 Django 管理中,有一个选项show_full_result_count允许禁用额外的COUNT(*)分页查询。那么是否有类似的机制呢?
您可以编写一个不调用的自定义分页器类count(),然后paginator_class在视图上设置以使用它。
class MyListView(ListView):
paginator_class = MyPaginator
Run Code Online (Sandbox Code Playgroud)
要编写您自己的分页器类,您可以尝试此代码片段或查看此票证上的讨论。
| 归档时间: |
|
| 查看次数: |
995 次 |
| 最近记录: |