不调用Entry.object.all()会破坏Django无尽的分页点吗?

时间:2016-01-13 02:34:12

标签: python django pagination django-endless-pagination

https://django-endless-pagination.readthedocs.org/en/latest/twitter_pagination.html上我读到示例views.py可能如下所示:

from endless_pagination.decorators import page_template

@page_template('myapp/entry_index_page.html')  # just add this decorator
def entry_index(
        request, template='myapp/entry_index.html', extra_context=None):
    context = {
        'entries': Entry.objects.all(),
    }
    if extra_context is not None:
        context.update(extra_context)
    return render_to_response(
        template, context, context_instance=RequestContext(request))

这似乎表明我们必须调用Entry.objects.all()并将结果传递给模板。但是没有Entry.objects.all()已经进行查询调用以检索所有相应的数据库对象,从而破坏了分页的主要目标之一(一次检索一小块数据)?

1 个答案:

答案 0 :(得分:3)

Django中的查询是Lazy,这意味着Entry.objects.all()没有带来完整的条目列表,它只是指定Endless将显示的结果范围。