【发布时间】:2010-12-08 02:28:25
【问题描述】:
我最近实现了 Django 出色的缓存框架。但是据我了解,Django 不会缓存在获取请求中传递参数的视图。 我有一个 Ajax 视图,它传递了我想要缓存 X 秒的参数,有什么简单的方法可以做到这一点?
在伪代码中,我目前有一个 URL:
http://mysites/ajaxthing/?user=foo&items=10
我想缓存任何这个 url,只要它具有相同的 get 参数。
我目前在我的视图中使用缓存装饰器:
myview(stuff)
myview = cache_page(myview, 60 * 3)
我确实读过关于 django's vary headers 的文章,但它让我有点不知所措,我什至不确定它是否是正确的解决方案
【问题讨论】:
-
有什么原因你不想只使用:
http://mysites/ajaxthing/user/foo/items/10/这样你就可以很好地避开这个问题。 -
请阅读下面euqidron的回答,这种行为在Django 1.3中已经改变了。
-
这个问题的前提是“Django 不会缓存在 get 请求中传递参数的视图”,但根据 Kyle 在下面的回答,这不是真的。 Django 在缓存键中包含查询参数。