[英]Simple Math in Django template
我的模板中有一个带有分页的表格设置,并且在左下角显示了显示的项目数,如下所示:
这里10
叫做count
, total
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 +1
和count += 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_index
和end_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.