python - Django 模板迭代列表

标签 python django templates

我在 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/

相关文章:

python - 如何绘制从特定开始日期开始的时间序列?

python - 如何在 matplotlib boxplot 中更改 mustache 帽的长度

python - 计算特定字符串在列表中出现的频率

python - Django REST Framework Browsable API 的不同版本控制方案

python - Django 完全忽略异步测试(Django channel )

python - 使用django根据日期修改模板

c++ - 模板的循环包含

C++ 错误 : class template has already been defined

python - 如何将这种在二叉树中的两个级别之间查找节点的递归实现转换为迭代版本?

c++ - 根据模板参数添加成员函数和成员变量