@dwenlvov
Аналитик

Как в django из сложного словаря в цикле достать один из словарей?

Допустим есть импровизированный словарь:

dict = {'day_1': {
                 'name': 'Иван'; 'card': {
                                          '1': 'кроссовки'; '2': 'кепка'}}, 
           'day_2': {
                 'name': 'Вася'; 'card': {
                                          '1': 'тетрадь'; '2': 'ручка'}}
}

{% for y, dict_1 in dict.items %}
     {% for y, dict_2 in dict_1 ????? %}
           <p>...</p>
     {% endfor %}
{% endfor %}


вопрос собственно во втором цикле как быть?
как достать данные по ключу 'card'?
  • Вопрос задан
  • 97 просмотров
Решения вопроса 1
@dwenlvov Автор вопроса
Аналитик
Нашел решение:
Создаем свой фильтр.
В папке приложения создаем папку temlatetags
В нее __init__.py и к примеру filters.py
В filters.py:
from django import template

register = template.Library()

@register.filter
def get_item(dictionary, key):
    return dictionary[key]


в html:
{% for y, dict_1 in dict.items %}
     {% load filters %}
     {% with item=dict_1|get_item:'card' %}
          {% for y, dict_2 in item.items %}
               <p>dict_2</p>    #словарь card
          {% endfor %}
     {% endwith %}
{% endfor %}


как то так
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы