7

これはドキュメント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})

テンプレート:

{% for contact in contacts %}
    {# Each "contact" is a Contact model object. #}
    {{ contact.full_name|upper }}<br />
    ...
{% endfor %}

<div class="pagination">
    <span class="step-links">
        {% if contacts.has_previous %}
            <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>
        {% endif %}
    </span>
</div>

たとえば、次のように表示されます。

ページ 2/3. 次へ

このように表示する方法:

previous  1 <b>2</b> 3 Next

html<b>マークのある現在のページ。

?

4

4 に答える 4

21

これを試すことができます:

{% for num in contacts.paginator.page_range %}
  {% ifequal num contacts.number %}
    <span class="current"><b>{{ num }}</b></span>
  {% else %}
    <a href="?page={{ num }}"> {{ num }}</a>
  {% endifequal %} 
{% endfor %}
于 2013-07-05T14:21:37.150 に答える
5

Bootstap 4 Alpha 5 バージョンのコードが必要な場合。

また、次の 2 つの変更を行いました。

  1. 私はページの重複が好きではないので、私の場合/profiles/?page=1は simpleに変更しました/profiles/
  2. ページ数が多いので、全ページ表示しません。表示するのは、最初、最後、現在、および現在のページから +-3 ページ、および 10 ページごとです。

変更を加えていない Bootstrap 4 のすべてのページだけが必要な場合は、コードの不要な部分を削除してください (すべてコメントされています)。

{% if is_paginated %}
    <nav aria-label="Page navigation">
        <ul class="pagination">
            <!-- << PREVIOUS PART -->
            <!-- << Disable 'Previous' page button if you are at the 1st page -->
            {% if not page_obj.has_previous %}
                <li class="page-item disabled">
                    <a class="page-link" href="#" tabindex="-1" aria-label="Previous">

            <!-- << If you are at the 2nd page,
            'Previous' page button will get '/profiles/' url instead of '/profiles/?page=1' -->
            {% elif page_obj.previous_page_number == 1 %}
                <li class="page-item">
                    <a class="page-link" href="{{ profiles_1st_page_url }}" aria-label="Previous">

            {% else %}
                <li class="page-item">
                    <a class="page-link" href="?page={{ page_obj.previous_page_number }}" aria-label="Previous">
            {% endif %}

                        <span aria-hidden="true">&laquo;</span>
                        <span class="sr-only">Previous</span>
                    </a>
                </li>

            <!-- PAGES PART -->
            {% for num in page_obj.paginator.page_range %}
                <!-- Active page -->
                {% if num == page_obj.number %}
                    <li class="page-item active">
                        <a class="page-link" href="#">{{ num }}<span class="sr-only">(current)</span></a>
                    </li>

                {% else %}
                    <li class="page-item">
                        <!-- For the 1st page we do not use ?page=1 -->
                        {% if num == 1 %}
                            <a class="page-link" href="{{ profiles_1st_page_url }}">{{ num }}</a>

                        {% else %}
                            <!-- Show current page and +-3 pages -->
                            {% if num|add:"-3" <= page_obj.number and page_obj.number <= num|add:"3" %}
                                <a class="page-link" href="?page={{ num }}">{{ num }}</a>

                            <!-- Shows every 10th page and the last page -->
                            {% elif num|divisibleby:"10" or num == page_obj.paginator.num_pages %}
                                <a class="page-link" href="?page={{ num }}">{{ num }}</a>
                            {% endif %}

                        {% endif %}
                    </li>
                {% endif %}

            {% endfor %}

            <!-- >> NEXT PART -->
            {% if not page_obj.has_next %}
                <!-- << Disable 'Next' page button if you are at the last page -->
                <li class="page-item disabled">
                    <a class="page-link" href="#" tabindex="-1" aria-label="Next">

            {% else %}
                <li class="page-item">
                    <a class="page-link" href="?page={{ page_obj.next_page_number }}" aria-label="Next">
            {% endif %}

                        <span aria-hidden="true">&raquo;</span>
                        <span class="sr-only">Next</span>
                    </a>
                </li>

        </ul>
    </nav>
{% endif %}

そして、それは次のようになります: ここに画像の説明を入力

于 2016-10-26T16:21:29.173 に答える