繁体   English   中英

Django模板中的简单数学

[英]Simple Math in Django template

我的模板中有一个带有分页的表格设置,并且在左下角显示了显示的项目数,如下所示:

在此处输入图片说明

这里10叫做counttotal 19

如果我转到下一页(截至目前,我的表中只有2页的数据),则显示正在Showing 9 of 19 items

我要对此稍作修改,以Showing 1 - 10 of 19然后Showing 11 - 19 of 19 在算法上似乎很简单。 我要做的就是初始化变量start = 1 ,将信息Showing {{start}} - {{count}} of {{total}} 然后,当我转到下一页时, start = count +1count += count 但是我不知道如何在django template做到这一点。 我尝试将with tag设为{%with start = 1%},但它给我一个错误'with' expected at least one variable assignment

这是所有魔术发生的地方:

{% if table.page %}
        {% with table.page.paginator.count as total %}
            {% with table.page.object_list|length as count %}
                {% with start = 1 %}
                    {% 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>

您不需要为此做数学。 page对象已经为您提供了相关信息: start_indexend_index

所以:

{% with table.page as page %}
Showing {{ page.start_index }} - {{ page.end_index }} of {{ page.paginator.count }}
{% endwith %}

另外,您可以使用page.has_other_pages来确定是否还有其他页面,而不是将总数与当前计数进行比较的复杂逻辑。

请参阅分页文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM