我传递给Django模板的字典包含2个字典,每个字典都有一个列表:
'nav_dict': {
'class_name': ['Chemical', 'Avian', 'Mammal'],
'tab_label': ['Chemical!', 'Avian!', 'Mammal!']
}
我想循环查看每个dict中的列表,以填写以下代码行:
^{pr2}$其中item_className
=类名列表中的每个值,item_tabLabel
=选项卡标签列表中的每个值。结果是3个带有class_name
和tab_label
的标记。在
我已经尝试过类似的方法(这段代码只处理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 %}
如果您必须使用该字典,则可以使用以下模板代码:
你的问题在于你呈现数据的方式。在
为什么不这样创建字典,其中每个键是类名,关联的值是标签。它将更具语义和可读性。在
然后,您就可以在上面循环,并将key作为class属性,将value作为label属性。在
^{pr2}$如果元素的顺序很重要(因为字典是无序的),您可以使用^{} 模块中的^{} 来保持插入顺序。你会在你的视野里做这样的事情。。。在
类似地,可以使用元组列表作为数据
像这样在这个物体上循环
如果您只想在字符串中附加一个感叹号来创建标签,那么您当然可以创建一个自定义模板filter-或者只将感叹号附加到模板本身中。在
相关问题 更多 >
编程相关推荐