Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django中更有效的分页方式_Python_Django_Pagination - Fatal编程技术网

Python Django中更有效的分页方式

Python Django中更有效的分页方式,python,django,pagination,Python,Django,Pagination,我试图在django项目中实现分页 我查看并发现了以下示例: def listing(request): contact_list = Contacts.objects.all() paginator = Paginator(contact_list, 25) # Show 25 contacts per page page = request.GET.get('page') try: contacts = paginator.page(page

我试图在django项目中实现分页

我查看并发现了以下示例:

def listing(request):
    contact_list = Contacts.objects.all()
    paginator = Paginator(contact_list, 25) # Show 25 contacts per page

    page = request.GET.get('page')
    try:
        contacts = paginator.page(page)
    except PageNotAnInteger:
        # If page is not an integer, deliver first page.
        contacts = paginator.page(1)
    except EmptyPage:
        # If page is out of range (e.g. 9999), deliver last page of    results.
        contacts = paginator.page(paginator.num_pages)

    return render_to_response('list.html', {"contacts": contacts})
看起来它从数据库中获取了所有对象,并将所需的对象返回到模板

这不是很有效率,对吗

我还看了一些看起来很难定制的东西

我正在寻找易于定制的解决方案,因为我将把它与
haystack
elasticsearch


我还可以使用什么?

Paginator无法获取所有对象。和你的情况一样,你要了25件物品。因此,每个页面将包含25个对象。当您尝试访问下一页时,将发送一个新的DB请求以访问26-50个对象。

Paginator不会获取所有对象@f43d65,哦,当然!请写下来作为答案,这样我就可以接受了。非常感谢。