【问题标题】:Django partially caching a viewDjango 部分缓存视图
【发布时间】:2012-03-10 13:39:25
【问题描述】:

我有一个简单的页面:

  • 从数据库中获取的项目列表
  • 标头。

标题上是通常的“登录表单”或登录用户的名称。对于所有用户,“项目部分”是相同的,但如果我缓存整个视图,则不会根据用户状态显示不同的标题(如果您未登录,则为您自己的用户名或登录表单)。如何缓存“项目”部分并使标题保持动态?谢谢。

【问题讨论】:

    标签: django caching django-templates


    【解决方案1】:

    使用template fragment cache。它允许您使用项目列表仅缓存模板的片段:

    {% load cache %}
     A header here
    {% cache 500  %}
       List of items here
    {% endcache %}
    

    【讨论】:

    【解决方案2】:

    如果您使用的是 Django 的缓存系统和 1.3 版,使用template fragment caching 看起来很容易。事实上,文档中给出的版本建议将页面的两个部分缓存为单独的片段,将标题键入登录用户:

    {% load cache %}
    
    {% cache 500 header request.user.username %}
        .. header ..
    {% endcache %}
    
    {% cache 500 items %}
        .. items ..
    {% endcache %}
    

    【讨论】:

      猜你喜欢
      • 2013-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-24
      • 2011-09-26
      • 1970-01-01
      • 2013-12-07
      • 1970-01-01
      相关资源
      最近更新 更多