Django分页限制

时间:2016-05-10 22:38:21

标签: django twitter-bootstrap datatables django-tables2

我的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;在桌子上。 enter image description here 然而,这是不可取的,因为如果我有1000个条目,每页10个,我不能让页面导航器显示100,因为它会弄乱我的内容区域。我怎么能以某种方式限制所显示的页数,即如果像1|2|3|4|5|..那样点击...会显示页面6|7|8|9|10|..,而不是1-10显示在上面的图片中。我尝试添加previousnext按钮,但不确定他们为什么会失败。

1 个答案:

答案 0 :(得分:0)

最简单的方法是使用外包中的一些分页标记。您可以在django-packages上找到大量的列表。

例如,对于django-bootstrap-pagination,您的分页块应该类似于

{% bootstrap_pager table.page %}