Как использовать несколько for в шаблоне для получения элементов из объекта в django

Я передаю следующие переменные из бэкенда. Я хочу получить значения динамически.

num_list = [1, 2, 3, 4, 5, 6, 7, 8, 9] 
answers = [
{'date': datetime.date(2022, 8, 26), 1: 100.0, 2: 50.0, 3: None, 4: None, 5: None, 6: None, 7: None, 8: None, 9: None},
 {'date': datetime.date(2022, 8, 27), 1: 100.0, 2: None, 3: None, 4: None, 5: None, 6: None, 7: None, 8: None, 9: None}
]

В своем шаблоне я использовал:

{% for i in answers %}
  <tr>
     <td>{{i.date}}</td>
     {% for j in num_list %}
        <td>{{i.j}}</td>
     {% endfor %}
  </tr>
{% endfor %}

Использование приведенного выше кода в шаблонах не дает мне вывода, он просто отображает пустоту. Но если вводить вручную, то все работает.

<td>{{i.1}}</td>
<td>{{i.2}}</td>
.
.
<td>{{i.9}}</td>

Есть ли решение для решения этой проблемы?

Вы можете собрать ответы в отдельный список, например, так:

{'date': datetime.date(2022, 8, 26), "num_list":[100.0, 50.0, None, None, None, None, None, None, None],}

Затем в шаблоне вы можете легко получить доступ к списку с помощью:

{% for i in answers %}
...
    {% for j in i.num_list %}
    ....

Вышеприведенное не работает, потому что {{j}} не является атрибутом {{i}}, поэтому вы не можете сделать {{i.j}}

Вернуться на верх