Переменные сессии Django/Django-CMS со старыми значениями
У меня есть сайт в Django/Django-CMS, на котором я хочу сохранить некоторые данные с одной страницы на другую. Я сохраняю данные в session
переменная:
request.session['yb_name'] = request.POST.get('name')
Проблема в том, что иногда мои страницы получают и старые значения yb_name
вместо нового. Я печатаю переменную в моем процессоре контекста, и значение является правильным, но в шаблоне показано мне и старое. Это не происходит каждый раз. Также это происходит внутри шаблонов из пользовательских плагинов, которые я сделал.
Я печатаю это в шаблоне так:
<input type="text" name="name" value="{{ request.session.yb_name|default_if_none:'' }}">
Первым делом я попытался удалить переменную, а затем снова создать ее с новым значением:
if request.session.get('yb_name', None):
del request.session['yb_name']
request.session.modified = True
request.session['yb_name'] = request.POST.get('name')
request.session.modified = True
Но проблема сохраняется.
Любая идея, что я мог бы быть?
Спасибо:)
1 ответ
По предложению @Paulo я отключил кеш CMS. В моем settings.py
В файл я добавил следующие строки:
CMS_PAGE_CACHE = False
CMS_PLACEHOLDER_CACHE = False
CMS_PLUGIN_CACHE = False
Это отключает весь кеш, но, как подсказывает @brunodesthuilliers, в работе это может быть плохо, поэтому я немного искал в Django-CMS
документацию и нашел настройки, которые можно поставить, чтобы отключить только некоторые плагины:
class HistoryHeaderCMSPlugin(CMSPluginBase):
render_template = "plugins/history/header.html"
name = _("History Header")
model = HistoryHeaderPlugin
cache = False
def render(self, context, instance, placeholder):
context = super(HistoryHeaderCMSPlugin, self).render(context, instance, placeholder)
return context
cache = False
в плагинах, которые использовали мои переменные сессий, решил мою проблему, не потеряв все CMS
кэш.
Спасибо вам всем:)