我的django应用中使用django_tables2创建了一个数据表,并使用bootstrap pagination添加了this answer,原因很明显。我将tables.html
文件复制到我的模板目录中并按如下方式进行了修改:
{% 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页&#39;在桌子上。
然而,这是不可取的,因为如果我有1000个条目,每页10个,我不能让页面导航器显示100,因为它会弄乱我的内容区域。我怎么能以某种方式限制所显示的页数,即如果像1|2|3|4|5|..
那样点击...
会显示页面6|7|8|9|10|..
,而不是1-10显示在上面的图片中。我尝试添加previous
和next
按钮,但不确定他们为什么会失败。
答案 0 :(得分:0)
最简单的方法是使用外包中的一些分页标记。您可以在django-packages上找到大量的列表。
例如,对于django-bootstrap-pagination,您的分页块应该类似于
{% bootstrap_pager table.page %}