我有一个包含部分的简单页面:
标题上有通常的“登录表单”或登录用户的名称。对于所有用户,“items part”是相同的,但是如果我缓存整个视图,则根据用户状态不显示不同的标题(如果您没有登录,则使用您自己的用户名或登录表单)。如何缓存“项目”部分并使标题保持动态?感谢。
答案 0 :(得分:5)
使用template fragment cache。它允许您仅使用项目列表缓存模板的片段:
{% load cache %}
A header here
{% cache 500 %}
List of items here
{% endcache %}
答案 1 :(得分:3)
如果你正在使用Django的缓存系统和版本1.3,template fragment caching看起来很容易。事实上,文档中给出的版本建议将页面的两个部分缓存为单独的片段,将标题键入登录用户:
{% load cache %}
{% cache 500 header request.user.username %}
.. header ..
{% endcache %}
{% cache 500 items %}
.. items ..
{% endcache %}