【发布时间】:2012-03-10 13:39:25
【问题描述】:
我有一个简单的页面:
- 从数据库中获取的项目列表
- 标头。
标题上是通常的“登录表单”或登录用户的名称。对于所有用户,“项目部分”是相同的,但如果我缓存整个视图,则不会根据用户状态显示不同的标题(如果您未登录,则为您自己的用户名或登录表单)。如何缓存“项目”部分并使标题保持动态?谢谢。
【问题讨论】:
标签: django caching django-templates
我有一个简单的页面:
标题上是通常的“登录表单”或登录用户的名称。对于所有用户,“项目部分”是相同的,但如果我缓存整个视图,则不会根据用户状态显示不同的标题(如果您未登录,则为您自己的用户名或登录表单)。如何缓存“项目”部分并使标题保持动态?谢谢。
【问题讨论】:
标签: django caching django-templates
使用template fragment cache。它允许您使用项目列表仅缓存模板的片段:
{% load cache %}
A header here
{% cache 500 %}
List of items here
{% endcache %}
【讨论】:
如果您使用的是 Django 的缓存系统和 1.3 版,使用template fragment caching 看起来很容易。事实上,文档中给出的版本建议将页面的两个部分缓存为单独的片段,将标题键入登录用户:
{% load cache %}
{% cache 500 header request.user.username %}
.. header ..
{% endcache %}
{% cache 500 items %}
.. items ..
{% endcache %}
【讨论】: