【发布时间】:2014-04-09 15:48:29
【问题描述】:
我传递给 Django 模板的字典包含 2 个字典,每个字典都有一个列表:
'nav_dict': {
'class_name': ['Chemical', 'Avian', 'Mammal'],
'tab_label': ['Chemical!', 'Avian!', 'Mammal!']
}
我想遍历每个字典中的列表来填写这行代码:
<li class="{{ item_className }} tabSel">{{ item_tabLabel }}</li>
其中item_className = class_name 列表中的每个值,item_tabLabel = tab_label 列表中的每个值。结果将是 3 个带有 class_name 和 tab_label 的 <li> 标签。
我尝试过这样的事情(此代码仅处理 class_name 部分),但我无法将循环附加到同一行代码(每个 <li>):
{% for key, value in nav_dict.items %}
{% if key == 'class_name' %}
{% for item_className in value %}
{% if forloop.counter0 == 0 %}
<li class="{{ item_className }} tabSel">{{ item_tabLabel }}</li>
{% else %}
<li class="{{ item_className }} tabUnsel">{{ item_tabLabel }}</li>
{% endif %}
{% endfor %}
{% endif %}
{% endfor %}
【问题讨论】:
-
同一行代码是什么意思?
-
“!”添加到第二个列表项末尾的只是一个占位符,表明两个列表不同。这是因为第一个列表是 CSS 类名,第二个列表是它们在网页上的显示方式。例如。
class="WaterBody"将是“水体”
标签: python django google-app-engine dictionary