Не удается заставить представление Django не кэшироваться при доступе через браузер

У меня есть приложение Django, размещенное на сервере Linux, обслуживаемом NGINX.

Вид под названием DashboardView отображает данные из базы данных Postgresql. Эта база данных регулярно обновляется процессами, не зависящими от приложения Django.

Для того чтобы всегда отображались последние данные, я установил в представлении режим "никогда не кэшировать". Однако при просмотре в браузере это, похоже, не применяется. Единственный способ заставить представление отображать обновленные данные - перезапустить GUNICORN на сервере.

Когда я смотрю на детали сети в Google Chrome devtools, все выглядит правильно. Ниже показаны сведения об управлении кэшем.

max-age=0, no-cache, no-store, must-revalidate, private

Пожалуйста, посмотрите код Django ниже, устанавливающий никогда не кэшировать DashboardView.

from django.utils.decorators import method_decorator
from django.views.decorators.cache import never_cache


class NeverCacheMixin(object):
    @method_decorator(never_cache)
    def dispatch(self, *args, **kwargs):
        return super(NeverCacheMixin, self).dispatch(*args, **kwargs)


class DashboardView(NeverCacheMixin, TemplateView):
      ...................code for view.............

Я в растерянности, на что обратить внимание дальше. Идентификаторы сессий, похоже, не меняются после перезапуска GUNICORN, поэтому я не думаю, что это связано с этим.

Где может произойти сбой?

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