我有一个用Django编写的博客,我开始使用带有文件系统缓存后端的基本Django缓存中间件。不幸的是,这导致了两件事情被缓存,本应该不是这样的:登录用户的管理链接(例如“编辑此帖子”)以及基于cookie的预填充评论表单。Django缓存博客
要解决这个问题,我开始使用模板缓存标记:
{% load cache %}
...admin links...
{% cache 500 blog_entry entry.id %}
...entry...
{% endcache %}
...comment form...
但它似乎是整个页面仍然得到缓存为好。如何将缓存系统设置为只有缓存您明确设置的模板部分?
编辑:对于评论,如果有人对博客发表评论,我将他们的姓名,网站和电子邮件地址存储在会话变量中。如果他们回到网站,那么我会用这些数据预先填写表单的这些部分。但这意味着缓存系统有可能使用预先填充的数据来缓存视图,这是不好的。
这工作,很简单。 复杂的解决方案将缓慢移动缓存(缓存数据,而不是渲染页面)。虽然不是最好的解决方案。 iBegin或Curse.com提到总是使用通用数据渲染缓存页面,然后使用Javascript插入已登录的特权用户内容(管理链接,Hello用户名等)。这是更复杂的,但真正利用缓存的渲染内容最好。 – joej 2009-07-16 15:30:43