我在 Django View 中创建了一个列表:
list = [ elem1, elem2, ..., elemN ]
列表的长度是可变的:它可以包含 0-6 个元素。我想迭代模板中的列表,但我希望循环始终运行 6 次,为不存在的元素生成 None
或空字符串。
我尝试过这样的事情:
{% for i in "0123456" %}
{{ list.i }}
{% endfor %}
但这显然行不通。我知道我可以在 View 中执行此操作,但我希望将其包含在模板中。有可能吗?
最佳答案
您可以添加一条 if 语句来检查是否是第六次循环。
{% for item in someList %}
{% if forloop.counter <= 6 %}
{{ item }}
{% endif %}
{% endfor %}
http://docs.djangoproject.com/en/1.3/ref/templates/builtins/#for在文档中。 当然,如果您的列表很长,那么这并不是最佳选择。我还建议在views.py 中处理列表,然后将其传递给模板。如果可能的话,逻辑应该保留在 View 中。
这使您可以控制完成的循环次数。要完全解决您的问题,您将需要一些额外的逻辑,但请参阅我上面关于此的注释。
关于python - Django 模板迭代列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5636999/