Django的分页器

时间:2018-08-09 13:36:15

标签: django django-models pagination django-templates django-views

您好,我在查看有关https://docs.djangoproject.com/en/2.1/topics/pagination/的有关django分页器的文档

使用的代码中

from django.core.paginator import EmptyPage, PageNotAnInteger, Paginator

    from django.shortcuts import render

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

        page = request.GET.get('page')
        contacts = paginator.get_page(page)
        return render(request, 'list.html', {'contacts': contacts})

在模板中使用

<div class="pagination">
    <span class="step-links">
        {% if contacts.has_previous %}
            <a href="?page=1">&laquo; first</a>
            <a href="?page={{ contacts.previous_page_number }}">previous</a>
        {% endif %}

        <span class="current">
            Page {{ contacts.number }} of {{ contacts.paginator.num_pages }}.
        </span>

        {% if contacts.has_next %}
            <a href="?page={{ contacts.next_page_number }}">next</a>
            <a href="?page={{ contacts.paginator.num_pages }}">last &raquo;</a>
        {% endif %}
    </span>
</div>

我理解所有代码,但首次呈现时将成为 page

的值

在行

  

page = request.GET.get('page')

我知道django运行

  

?page = Value

并将值传递给页面聚集体,但是第一次渲染时页面的值是什么

1 个答案:

答案 0 :(得分:0)

在这种情况下,

page将是None,然后get_page将返回第一页。