2016-05-10 22 views
-1

私はdjango_tables2を使用して私のdjangoアプリでデータテーブルを持っていて、this answerを使用して明らかな理由からbootstrap paginationを追加しました。私は私のtemplatesディレクトリにtables.htmlファイルをコピーし、次のように修正:Djangoページ区切り制限

{% if table.page %} 
     {% with table.page.paginator.count as total %} 
      {% with table.page.object_list|length as count %} 
       {% block pagination %} 
        <ul class="pagination"> 
          {% block pagination.cardinality %} 
          <li class="cardinality"> 
           {% if total != count %}{% blocktrans %}Showing {{ count }} of {{ total }} 
           {% endblocktrans %}{% else %}{{ total }}{% endif %} 
           {% if total == 1 %}{{ table.data.verbose_name }}{% else %} 
            {{ table.data.verbose_name_plural }}{% endif %} 
          </li> 
         {% endblock pagination.cardinality %} 
        </ul> 
        <div class="pull-right"> 
         <nav> 
          <ul class="pagination"> 
           {% block pagination.allpages %} 
            {% if table.page.has_previous %} 
             <li><a href="{% querystring table.prefixed_page_field=table.page.previous_page_number %}">Previous</a></li> 
            {% endif %} 

            {% for p in table.paginator.page_range %} 
             <li><a href="{% querystring table.prefixed_page_field=p %}">{{ p }}</a></li> 
            {% endfor %} 

            {% if table.has_next %} 
             <li><a href="{% querystring table.prefixed_page_field=table.page.next_page_number %}">Next</a></li> 
            {% endif %} 
           {% endblock pagination.allpages %} 
          </ul> 
         </nav> 
        </div> 
       </div> 
      {% endblock pagination %} 
     {% endwith %} 
    {% endwith %} 
{% endif %} 

私はちょうど2ページを持っているので、テーブルデータ量が非常に少ない今のところ。しかし、私はランダムなデータでテーブルを作成し、テーブルに10 'ページを得ることができました。 enter image description here しかし、これは望ましくありません。なぜなら、ページあたり10個の1000個のエントリがある場合、コンテンツエリアを乱雑にしてしまうため、ページナビゲータに100個表示できません。 をクリックすると6|7|8|9|10|..と表示される1|2|3|4|5|..のようなものであれば、上の画像に1〜10の代わりに表示されたページの数を何とか制限することができます。 previousnextボタンを追加しようとしましたが、なぜ失敗したのかはわかりません。

答えて

0

最も簡単な方法は、外国のパッケージのページングタグを使用することです。 django-packagesにそれらの広範なリストがあります。

django-bootstrap-paginationとたとえば、あなたのページネーションブロックは

{% bootstrap_pager table.page %} 
ようになるはずです