Python Django/Django CMS会话变量具有旧值

Python Django/Django CMS会话变量具有旧值,python,django,django-cms,django-sessions,Python,Django,Django Cms,Django Sessions,我在Django/Django CMS中有一个站点,我想将一些数据从一个页面保存到另一个页面。我正在会话中保存数据变量: request.session['yb_name'] = request.POST.get('name') 问题是,有时我的页面会获得旧值yb_name,而不是新值。我在上下文处理器中打印变量,值是正确的,但在模板中显示了我和旧的。这并不是每次都会发生。这也发生在我制作的自定义插件的模板中 我将其打印在模板中,如下所示: <input type="text" name

我在Django/Django CMS中有一个站点,我想将一些数据从一个页面保存到另一个页面。我正在
会话中保存数据
变量:

request.session['yb_name'] = request.POST.get('name')
问题是,有时我的页面会获得旧值
yb_name
,而不是新值。我在上下文处理器中打印变量,值是正确的,但在模板中显示了我和旧的。这并不是每次都会发生。这也发生在我制作的自定义插件的模板中

我将其打印在模板中,如下所示:

<input type="text" name="name" value="{{ request.session.yb_name|default_if_none:'' }}">
但问题依然存在

你知道我会是什么吗


谢谢:)

根据@Paulo的建议,我关闭了CMS缓存。在我的
settings.py
文件中,我添加了以下几行:

CMS_PAGE_CACHE = False
CMS_PLACEHOLDER_CACHE = False 
CMS_PLUGIN_CACHE = False
这会禁用所有缓存,但正如@Brunodesshuilliers所建议的,它在生产中可能不好,因此我在
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
缓存


谢谢大家:)

为什么要使用request.POST?导航跳过通常使用GET请求的导航…你好,Patricia,请尝试关闭cms缓存。@Paulo非常感谢您,这解决了我的问题。我很高兴这对您有效,但请注意,这不是一个解决方案,只是一个隔离问题的建议:)这似乎现在就解决了您的问题,但是,一旦您部署到生产环境中并开始获得一些严重的流量,这将产生另一个问题。django cms使用缓存是有原因的…@Brunodesshuilliers您还有其他解决方案吗?@Brunodesshuilliers和我使用的是
POST
,因为它来自表单submit.django-cms缓存上的文档非常稀少,我们不知道在代码和模板的哪个部分设置/使用了这个会话变量,显然,我不可能给你一个有效的解决方案。如果这只是一个自定义插件设置/使用的,你可以只禁用这个插件的缓存,但我不确定页面缓存是否仍然会触发。IOW:您必须阅读源代码以了解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