Итерация по словарю без набора в шаблоне

У меня есть словарь, который я подаю в линейный график chart.js.

Это выглядит следующим образом:

context['graph_data'] = {'day': [datetime.date(2022, 2, 28),
  datetime.date(2022, 3, 1),
  datetime.date(2022, 3, 2),
  datetime.date(2022, 3, 3),
  datetime.date(2022, 3, 4),
  datetime.date(2022, 3, 5),
  datetime.date(2022, 3, 6),
  datetime.date(2022, 3, 7),
  datetime.date(2022, 3, 8),
  datetime.date(2022, 3, 9),
  datetime.date(2022, 3, 10),
  datetime.date(2022, 3, 11),
  datetime.date(2022, 3, 12),
  datetime.date(2022, 3, 13),
  datetime.date(2022, 3, 14),
  datetime.date(2022, 3, 15),
  datetime.date(2022, 3, 16),
  datetime.date(2022, 3, 17),
  datetime.date(2022, 3, 18),
  datetime.date(2022, 3, 19)],
 'response_totals': [0,
  0,
  0,
  0,
  12,
  12,
  1,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  1,
  0,
  0,
  0]}

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

new Chart(ctx1, {
      type: "line",
      data: {
        labels: [{%for i in graph_data%}{{i.day}},{%endfor%}],
        datasets: [{
            label: "Referrals",
            tension: 0.4,
            borderWidth: 0,
            pointRadius: 2,
            pointBackgroundColor: "#cb0c9f",
            borderColor: "#cb0c9f",
            borderWidth: 3,
            backgroundColor: gradientStroke1,
            data: [{%for j in graph_data%}{{j.response_totals}},{%endfor%}],
            maxBarThickness: 6
          },

Я немного новичок. Я могу работать с кверисетами, но я не уверен, как преобразовать неqs словари через шаблон.

У вас есть несколько способов написать это, сначала прочитайте документацию по языку шаблонов django.

Надеемся, вы понимаете, что для получения списка дней, хранящихся в качестве значения для ключа day в python, вы должны сделать что-то вроде context['graph_data']['days'].

В шаблоне мы используем . для доступа к ключам словаря, поэтому мы можем использовать graph_data.days в шаблоне, чтобы получить тот же список дней, который context['graph_data']['days'] выдал бы в python.

Так что я бы сделал это следующим образом:

new Chart(ctx1, {
    ...
    data: {
        labels:[{% for i in graph_data.day %}{{ i }},{% endfor %}],
        ...
    }
}
Вернуться на верх