2016-05-30 3 views
4

У меня есть словарь со списками, и я пытаюсь перебирать его, а в моем шаблоне Django.Как перебирать словарь со списками в шаблоне 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'], 

Вопрос заключается в том, чтобы передать этот словарь в шаблон без Джанго спасаясь символами и перебора всех значений для каждой страны.

Сейчас я прохожу его в словаре контекст:

ctx['regions'] = cntr_rgns 

, а затем я пытаюсь перебирать его в шаблоне, как:

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

Но этот путь я просто получить весь массив не каждый отдельный элемент.

ответ

5

Вы должны использовать вложенный цикл в вашем случае:

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

Спасибо. Он работает именно так, как мне это нужно. И как-то он отвечает на первую часть вопроса: «Как передать этот словарь в мой шаблон, не используя django, избегая символов и повторяя все значения для каждой страны». Но я не понимаю, как! :) – user1919

+1

@ user1919 Если вы имеете в виду такие части, как '\ xc9c', они являются экранами unicode и будут выглядеть хорошо при печати в шаблоне. – Selcuk

Смежные вопросы