Python Django模板中的简单数学
我的模板中有一个带有分页的表格设置,在左下方显示了显示的项目数,如下所示: 这里的Python Django模板中的简单数学,python,django,Python,Django,我的模板中有一个带有分页的表格设置,在左下方显示了显示的项目数,如下所示: 这里的10称为count,19称为total 如果我转到下一页(到目前为止,我的表中只有2页的数据),它会显示,显示19项中的9项 我想稍微修改一下,将其显示为显示19个中的1-10个,然后显示19个中的11-19个。从算法上看,这似乎很简单。我所要做的就是初始化一个变量start=1,将信息打印为显示{{start}}-{count}{{total}。然后,当我转到下一页时,start=count+1和count+=
10
称为count
,19
称为total
如果我转到下一页(到目前为止,我的表中只有2页的数据),它会显示,显示19项中的9项
我想稍微修改一下,将其显示为显示19个中的1-10个
,然后显示19个中的11-19个
。从算法上看,这似乎很简单。我所要做的就是初始化一个变量start=1
,将信息打印为显示{{start}}-{count}{{total}
。然后,当我转到下一页时,start=count+1
和count+=count
。但是,我不知道如何在django模板中执行此操作。我尝试将带有标记的用作{%with start=1%},但它给了我一个错误'with'预期至少有一个变量赋值
这就是所有魔法发生的地方:
{% 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>
{%if table.page%}
{%与table.page.paginator.count合计%}
{带table.page.object的%u列表|长度为count%}
{1%,起始值为1%}
{%块分页%}
{%block pagination.cardinality%}
-
{%if总数!=count%}
{%blocktrans%}
显示{{total}的{{count}}
{%endblocktrans%}
{%else%}
{{total}}
{%endif%}
{如果总数=1%,则为%1}
{{table.data.verbose_name}
{%else%}
{{table.data.verbose_name_复数}
{%endif%}
{%endblock分页.基数%}
你不需要为此做数学题。页面
对象已经提供了相关信息:开始索引
和结束索引
因此:
此外,您还可以使用page.has_other_pages
来确定是否还有其他页面,而不是将总数与当前计数进行比较的复杂逻辑
看。该死,太棒了!。工作得很有魅力。而且分页文档在很多方面都有帮助。
{% with table.page as page %}
Showing {{ page.start_index }} - {{ page.end_index }} of {{ page.paginator.count }}
{% endwith %}