遍历lis的Django模板

2024-10-02 08:19:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Django视图中创建了一个列表:

list = [ elem1, elem2, ..., elemN ]

列表是可变长度的:它可以包含0-6个元素。我想遍历模板中的列表,但我希望循环始终运行6次,为不存在的元素生成None或空字符串。

我试过这样的方法:

{% for i in "0123456" %}
    {{ list.i }}
{% endfor %}

但这显然行不通。我知道我可以在视图中执行此操作,但我希望在模板中包含此操作。有可能吗?


Tags: django方法字符串innone视图模板元素
2条回答

您可以添加一个if语句来检查这是否是您第6次通过循环。

{% for item in someList %}
{% if forloop.counter <= 6 %}
{{ item }}
{% endif %}
{% endfor %}

文档中的http://docs.djangoproject.com/en/1.3/ref/templates/builtins/#for。 当然,如果你的列表很长,那么这不是最优的。我还建议在views.py中处理该列表,然后将其传递给模板。如果可能的话,逻辑应该留在视图中。

这使您可以控制完成的循环数。要完全解决你的问题,你需要一些额外的逻辑,但见我上面关于这个的注释。

检查此代码段:Template range filter

相关问题 更多 >

    热门问题