Значение Django View не обновляется в шаблоне, если не перезапустить gunicorn.socket (установка: Django + Gunicorn + Nginx)

У меня есть небольшой Django-сайт, работающий на Ubuntu 22.04 на Linode. Он использует Nginx и Gunicorn для обслуживания страницы Django.

Теперь я пытаюсь понять, как получить последнее значение сегодняшней даты и времени из views.py при обновлении страницы; похоже, что оно где-то кэшируется.

Мое представление содержит следующее:

import datetime

class MonitorView(LoginRequiredMixin, ListView):
[...]
def get_context_data(self, **kwargs):
    context_data = super().get_context_data(**kwargs)
    context_data['todayvalue'] = datetime.datetime.today()
    return context_data

А мой шаблон содержит:

{% extends 'base.html' %}

{% block title %}
    DummyTitle
{% endblock title %}

{% block content %}
    {{todayvalue}}
{% endblock content %}

При загрузке шаблона это {{todayvalue}} печатает "11 августа 2022 года, 8:32 утра". А при повторном обновлении шаблона через 10 минут это {{todayvalue}} все еще печатает "Aug. 11, 2022, 8:32 a.m.".

Когда я перезапускаю gunicorn.socket (sudo systemctl restart gunicorn.socket), значения обновляются.

Похоже, что gunicorn выполняет какое-то кэширование. Меня еще больше смущает то, что другие значения в представлениях прекрасно обновляются в шаблоне, не требуя перезапуска gunicorn.socket. Например, это значение в представлении:

total_monthly_sent_volume = DailyStats.objects.filter(sg_date__gt=last_month).aggregate(Sum('sg_processed'))
context_data['total_monthly_sent_volume'] = total_monthly_sent_volume

представлен в шаблоне практически таким же образом, с {{total_monthly_sent_volume}}. Это показывает сумму, и, обновив страницу, вы получите обновленное значение суммы.

Итак, у меня два вопроса:

  • Почему {{today}} требует перезапуска gunicorn.socket, а {{total_monthly_sent_volume}} - нет?
  • Каков элегантный способ получения последнего значения для {{today}}, показанного в шаблоне, не требующий перезапуска gunicorn.socket?

Спасибо!

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