0

我在我的一个 django 项目中使用Memcached(带有python-memcached绑定)。情况是在主页上我有:

  • 顶栏:(其中包含登录链接/用户名和个人资料链接)
  • 搜索表格
  • 几块结果

目前,我正在使用cache_page()装饰器来缓存整个页面,如下所示:

@cache_page(3600)
def home(request):
    # View Code Goes Here

以上内容按预期工作。但是由于主页是一个可公开访问的页面,我在以下情况下面临一个问题:

  1. 匿名用户请求主页(如果尚未缓存该页面,则该页面已被缓存)。
  2. 现在用户登录并被重定向到主页。
  3. 加载缓存的主页(顶部栏仍然显示登录链接,而不是登录用户的姓名和个人资料链接,因为该页面在用户登录之前被缓存。)

问题:

有没有办法在模板级别或视图级别,让我们在使用cache_page()装饰器时指定一个我们不想缓存的块?

请注意:我知道我们可以使用{% cache %}模板标签或cache.set在上述场景中的每个块。但我特别在寻找一种解决方案,我们可以使用cache_page()装饰器并且仍然能够指定block我不想缓存在特定视图或模板中的

4

1 回答 1

0

使用CACHE_MIDDLEWARE_ANONYMOUS_ONLY

但这听起来像是一个中间件选项,它也会影响@cache_page

于 2013-02-06T09:44:54.677 回答