我在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>
答案 0 :(得分:0)
发现问题,我的旧代码每次查询所有对象,
return Entry.objects.filter().order_by('date')[::-1]
并且新代码将运行内部查询命令以每次查询severl对象。
return Entry.objects.filter().order_by('date')
使用elasticsearch,我使用答案here,它在Paginator和Elasticsearch查询之间创建一个代理。