python – 如何在Django模板中多次迭代同一个字典?
发布时间:2020-12-20 13:40:37 所属栏目:Python 来源:网络整理
导读:我有一个叫做类别的字典.我只想在Django模板中两次遍历这个字典.以下是我的代码: div class="first" {% for category in categories %} li class="{{category.name}}"a href="#{{category.name}}"{{category.name}/a/li {% endfor %}/divdiv class="lenDict
我有一个叫做类别的字典.我只想在Django模板中两次遍历这个字典.以下是我的代码:
<div class="first"> {% for category in categories %} <li class="{{category.name}}"><a href="#{{category.name}}">{{category.name}</a></li> {% endfor %} </div> <div class="lenDict"> <h2>{{categories|length}}</h2> </div> <div class="second"> {% for category in categories %} {% for facet in allFacets %} {% if category.name == facet.category %} <p id="{{facet.id}}">{{facet.facet}}</p> {% endif %} {% endfor %} {% endfor %} </div> 当我这样做时,div下的第一个循环首先工作正常. Django模板是否有任何限制,我们不能两次迭代相同的字典? 解决方法
要在Python中迭代整个dict,你应该使用
.iteritems() .它在dict的(key,value)对上创建一个新的迭代器.如果您想要一个项目列表,也可以使用
items() .
<div class="first"> {% for key,value in categories.iteritems() %} <li class="{{ key }}"><a href="#{{ key }}">{{ value }}</a></li> {% endfor %} </div> <div class="lenDict"> <h2>{{ categories|length }}</h2> </div> <div class="second"> {% for key,value in categories.iteritems() %} {% for facet in allFacets %} {% if key == facet.category %} <p id="{{facet.id}}">{{facet.facet}}</p> {% endif %} {% endfor %} {% endfor %} </div> 请注意,你的dict将是无序的.如果要保留密钥的顺序,请使用 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |