如何使我的django-el-pagination页面加载更快?

时间:2018-02-23 05:12:34

标签: python django

我在Django项目中使用django-el-pagination来显示文档。

但我发现当我有超过90k的文件时, 页面加载速度非常慢

我认为发送ajax加载更多时,'get_queryset'函数会再次运行

这会使页面加载缓慢。

有没有办法切片现有的对象列表,而不是再次查询所有对象。

class IndexView(AjaxListView):
    template_name = 'entry/index.html'
    context_object_name = 'entity_list'
    page_template = 'entry/entry_list_page.html'

    def get_queryset(self):
        <--My code to get objects-->
        return <objects>

1 个答案:

答案 0 :(得分:0)

发现问题,我的旧代码每次查询所有对象,

return Entry.objects.filter().order_by('date')[::-1]

并且新代码将运行内部查询命令以每次查询severl对象。

return Entry.objects.filter().order_by('date')

使用elasticsearch,我使用答案here,它在Paginator和Elasticsearch查询之间创建一个代理。