如何在django模板中迭代带有列表的字典?

use*_*919 4 python django templates loops view

我有一个带有列表的字典,我正在尝试迭代它,而在我的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'],
Run Code Online (Sandbox Code Playgroud)

问题是如何将这个字典传递给我的模板,而不必让django转义字符并迭代每个国家的所有值.

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

ctx['regions'] = cntr_rgns
Run Code Online (Sandbox Code Playgroud)

然后我尝试在模板中迭代它:

{% if regions %}
    {% for cntr, rgn in regions.items %}
        <option value={{ region }}>{{ rgn }}</option>
     {% endfor %}
 {% endif %}
Run Code Online (Sandbox Code Playgroud)

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

Sel*_*cuk 5

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

{% for cntr, rgn in regions.items %}
  {% for r in rgn %}
    <option value="{{ r }}">{{ r }}</option>
  {% endfor %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)