【问题标题】:Django template forloop counter number of iterationsDjango模板forloop计数器迭代次数
【发布时间】:2016-03-23 11:36:37
【问题描述】:

我想渲染 forloop.counter 计数值。

Althoug,{{ forloop.counter }} 返回计数但不返回总计数。

所以,而不是例如1, 3, 5, 9 我想返回总计数值 = 4。

如何在模板中做到这一点?

编辑

下面是我的代码:

{% for rl in roomfiltersettime %}

              {% if rl.room.id = room.id %}
                  {{ rl }}
              {% endif %}

{% endfor %}

我想返回 {{ rl }} 个项目的总数。如何在模板中做到这一点?

【问题讨论】:

  • 什么意思?这不会和你迭代的长度一样吗?
  • 为什么不能在视图中获取计数并将其作为模板变量传递给模板文件?
  • 我可以而且我知道该怎么做,但问题不在于它。

标签: python django templates counter


【解决方案1】:

我想返回 {{ rl }} 个项目的总数。

这将是列表的长度:

{{ roomfiltersettime|length }}

编辑:要计算满足if 条件的 {{ rl }} 项的数量,需要增加一个计数器变量。但这在没有自定义模板标签的 Django 模板中是不可能的。

【讨论】:

  • 不,不会的。请阅读代码。 if 语句下的 rl 项总数。
【解决方案2】:

如果只想计算迭代次数,可以使用内置函数 enumerate()

for i, v in enumerate(['tic', 'tac', 'toe']):
   print i, v

结果:

0 tic
1 tac
2 toe

【讨论】:

  • 如何在模板中使用 enumerate 以及如何将其应用于我的 for ... 循环和 if ... 语句的问题?
  • 你不能在 django 模板中使用 python,只能使用模板语法。
猜你喜欢
  • 2017-02-22
  • 1970-01-01
  • 1970-01-01
  • 2021-05-23
  • 1970-01-01
  • 2016-06-26
  • 1970-01-01
  • 2011-12-14
  • 1970-01-01
相关资源
最近更新 更多