加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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下的第一个循环首先工作正常.
但是当谈到div第二个循环时,它没有给出任何结果.
另外,div lenDict下的代码也没有给出结果.

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将是无序的.如果要保留密钥的顺序,请使用OrderedDict.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读