Исключение из кэширования страницы отдельного блока в Django?
Подскажите, плиз, как правильно поступить в ситуации, когда надо часть кода страницы блокировать для кеширования?
Проблема сейчас в том, что я через декоратор кэширую страницу целиком, где вызываю форму рейтинга, а после перезагрузки страницы установленный рейтинг не отображается, словно его не выставляли.
Есть ощущение, что браузер может закешировать ещё, но тут через meta в head блоке html шаблона можно запретить кэширование опять же для всей страницы.
Если кэширование происходит декоратором, то он ничего не знает ни о каких страницах и их частях, для него кэшируемые данные - это просто строка, возвращаемая функцией. Для кэширования частями используйте тег cache.
Сергей Горностаев, Сергей, я правильно понимаю, что Вы предлагаете обернуть только нужные блоки в шаблоне, а другие как бы не будут закэшированы и тогда вьюха отдаст клиенту ответ от сервера?
Станислав Шабалин, meta отвечает за кэширование браузером пользователя, а тег cache, декоратор и прочее - это кэширование данных в памяти сервера. Абсолютно разные несвязанные вещи.
Сергей Горностаев, нет, я это понимаю, то там сервер - тут клиент. Я про то, что на сервере предположим что обновится контент, а у пользователя будет по-прежнему старая закэшированная версия страницы отображаться. Я про этот конфликт интересов разных кэшей.
Станислав Шабалин, если у вас там не страница размером больше мегабайта, то я бы вообще не трогал настройки клиентского кэширования, браузеры достаточно умны.