Шаблон Django не обнаруживает определенные ключи при итерации по dict

#python #django #django-templates

#python #django #django-шаблоны

Вопрос:

Я сталкиваюсь с этой странной проблемой:

Это три строки «таблицы», переданные view.py как напечатано в шаблоне Django:

 {'c2': {'tag_id': 'c2', 'display_id': 'C0002', 'name': 'Financial Statements', 'class': 'child-of-None', 'type': 'category', 'statement': 'N/A', 'jun_20': 0, 'jul_20': 0, 'aug_20': 0}, 'c1': {'tag_id': 'c1', 'display_id': 'C0001', 'name': 'Balance Sheet', 'class': 'child-of-2', 'type': 'category', 'statement': 'N/A', 'jun_20': 0.0, 'jul_20': 0.0, 'aug_20': 0.0}, 'c6': {'tag_id': 'c6', 'display_id': 'C0006', 'name': 'Non-Current Assets', 'class': 'child-of-1', 'type': 'category', 'statement': 'N/A', 'jun_20': 0.0, 'jul_20': 36750000000.0, 'aug_20': 0.0}}
  

Это список «месяцев», прошедших views.py как напечатано в шаблоне Django:

 ['jun_20', 'jul_20', 'aug_20']
  

И это код, который я использую для генерации строки таблицы:

         {% for content in table.values %}
        <tr>
            <td>{{ content.display_id }}</td>
            <td>{{ content.name }}</td>
            {% for month in months %}
                <td>{{ content.month }}</td>
            {% endfor %}
        </tr>
    {% endfor %}
  

И это результат:

             <tr>
            <td>C0002</td>
            <td>Financial Statements</td>
            
                <td></td>
            
                <td></td>
            
                <td></td>
            
        </tr>
    
        <tr>
            <td>C0001</td>
            <td>Balance Sheet</td>
            
                <td></td>
            
                <td></td>
            
                <td></td>
            
        </tr>
    
        <tr>
            <td>C0006</td>
            <td>Non-Current Assets</td>
            
                <td></td>
            
                <td></td>
            
                <td></td>
            
        </tr>
  

Почему теги месяца td пустые?

Если я изменю ‘content.month’ на ‘content.jul_20, теги получат значения словаря для jul_20. Я также попытался преобразовать числа, хранящиеся в виде чисел с плавающей запятой, в строки.

Комментарии:

1. Вы <td>{{ content[month] }}</td> вообще пробовали?

2. пробовал. получена следующая ошибка: не удалось разобрать остаток: ‘[месяц]’ из ‘содержимого [месяц]’