Диаграмма с селектором даты в проекте Django

Я хочу создать Javascript диаграмму с селектором даты в моем Django проекте, как в этом примере: https://plotlydash.com/pie-chart-with-drop-down-list-and-date-picker-range-in-plotly-dash/

Я создал входной селектор даты в моем chart.html файле. Это позволит мне добавлять введенное значение даты к URL, когда я нажимаю кнопку "Создать отчет". Например: он будет добавлять: ?start=2022-02-02&end=2022-02-24 в ссылку URL.

<div class="d-sm-flex align-items-center justify-content-between mb-4">
  <form method="get" action="chart/">
    <div class="form-row">
     <label for="start">Start Date:</label>
     <div class="col">
        <input type="date" class="form-control" name="start_date" min="2020-01-03" required>
  </div>
  <label for="end">End Date:</label>
  <div class="col">
      <input type="date" class="form-control" name="start_date"  min="2020-01-03" required>
  </div>
  <button type="submit" class="btn btn-primary"><i class="fas fa-download fa-sm text-white-50"></i> Generate Report</button>
</div>
</form>

Вывод этого селектора даты на моей chart.HTML странице следующий: date

Данные моей диаграммы основаны на списке словарей. Это проект Django, поэтому мои данные определены в views.py: я подсчитываю количество записей с Майком, Джейн и Джеком.

mylist=
[{'Date': '2021-10-02', 'ID': 11773, 'Receiver': Mike},
{'Date': '2021-10-02', 'ID': 15673, 'Receiver': Jane},
{'Date': '2021-10-03', 'ID': 11773, 'Receiver': Mike},
... 
{'Date': '2021-12-25', 'ID': 34653, 'Receiver': Jack}]

mike=len(tuple(d for d in mylist  if d['Receiver'] == 'Mike'))
jane=len(tuple(d for d in mylist  if d['Receiver'] == 'Jane'))
jack=len(tuple(d for d in mylist  if d['Receiver'] == 'Jack'))
count = [mike, jane, jack]

А {{count}} - это данные, которые я поместил в область данных моей круговой диаграммы Javascript.

Я хотел добавить следующие коды для определения нового списка, который будет изменяться на основе моего ввода начальной & конечной даты:

dfmylist = pd.DataFrame(mylist)
dfmylistnew = (dfmylist['Date'] > start_date) & (dft2022['Date'] <= end_date)
...
newcount = [newmike, newjane, newjack]

Как я и ожидал, он выдает ошибку, что start_date не определен. Что еще я должен сделать, чтобы добавить в views.py, чтобы связать дату ввода с моими данными?

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