如何在Django模板中使用这个for循环?

时间:2012-12-06 10:05:11

标签: python django

这是我在Stack Overflow中的第一篇文章。我有这个循环,它在Python本身完全正常。

for i, j in enumerate(ls.split("/")):
    print i * " " + j

我想在Django模板中实现相同的功能。这就是我以为我会做的事情:

{% for i, j in enumerate(ls.split("/")) %}
{% i * " " + j %}
{% end for %}

但这不起作用。我从views.py获得 ls 变量。 i and j变量在实现for循环时组成。感谢

2 个答案:

答案 0 :(得分:4)

您似乎没有阅读任何有关Django模板的文档。你应该在提问之前这样做。

Django的模板语言是故意限制的。它不是Python。你不能在其中进行任意函数调用。这种事情必须在视图中完成,或者可能在自定义模板标记中完成。

答案 1 :(得分:1)

我认为它应该是这样的:

{% for i, j in data_supplied_to_template %}
    {{ i * " " + j }}
{% endfor %}

注意endfor关键字和模板替换的双括号语法。

现在,您必须将所需的数据放入data_supplied_to_template变量中,然后将其传递给模板引擎进行渲染。

一些额外的建议包括为变量使用更好的nanes(i,j通常保留为整数和索引)

有关详细信息,请参阅template documentation