【问题标题】:How to iterate through a dictionary with lists in django template?如何使用 django 模板中的列表遍历字典?
【发布时间】:2016-05-30 12:23:15
【问题描述】:

我有一个带有列表的字典,我正在尝试遍历它,同时在我的 Django 模板中。

这就是我的字典的样子:

{u'Canada': [u'Saskatchewan', u'Nunavut', u'Nova Scotia / Nouvelle-\xc9cosse', u'Prince Edward Island / \xcele-du-Prince-\xc9douard', u'Northwest Territories / Territoires du Nord-Ouest', u'Ontario', u'Alberta', u'New Brunswick / Nouveau-Brunswick', u'Newfoundland and Labrador / Terre-Neuve-et-Labrador', u'British Columbia / Colombie-Britannique', u'Manitoba', u'Yukon', u'Quebec / Qu\xe9bec'], u'Sao Tome and Principe': [u'Principe', u'Sao Tome'],

问题是如何在不让 django 转义字符并迭代每个国家/地区的所有值的情况下将此字典传递给我的模板。

现在我在上下文字典中传递它:

ctx['regions'] = cntr_rgns

然后我尝试在模板中将其迭代为:

{% if regions %}
    {% for cntr, rgn in regions.items %}
        <option value={{ region }}>{{ rgn }}</option>
     {% endfor %}
 {% endif %}

但这样我只得到整个数组而不是每个元素。

【问题讨论】:

    标签: python django loops templates view


    【解决方案1】:

    您应该在您的情况下使用嵌套循环:

    {% for cntr, rgn in regions.items %}
      {% for r in rgn %}
        <option value="{{ r }}">{{ r }}</option>
      {% endfor %}
    {% endfor %}
    

    【讨论】:

    • 谢谢。它完全按照我的需要工作。它以某种方式回答了问题的第一部分:“如何在不让 django 转义字符并迭代每个国家/地区的所有值的情况下将此字典传递给我的模板。”但我不明白怎么做! :)
    猜你喜欢
    • 2016-08-31
    • 2019-10-22
    • 2019-07-14
    • 2018-05-24
    • 2011-12-22
    • 2014-10-11
    • 2017-10-24
    • 2019-09-29
    • 2011-10-11
    相关资源
    最近更新 更多