Django缓存在get params上存储不同的密钥

时间:2014-01-20 12:22:34

标签: python django caching django-redis

我正在使用django-cache和django-redis-cache作为后端。

使用:

@cache_page(60*60*24)

装饰视图。

现在我遇到的问题是每个get请求都存储在redis中的不同密钥中。 我必须为任何get参数显示相同的页面。有没有办法强制缓存在服务和创建密钥时忽略get参数。

1 个答案:

答案 0 :(得分:0)

当然,无论请求的查询字符串是什么,计算相同的缓存密钥都是“一种方法”,但它需要一些工作 - 你必须根据低级缓存重写自己的cache_page实现API(此处记录https://docs.djangoproject.com/en/1.6/topics/cache/#the-low-level-cache-api)。您还可以阅读CacheMiddleware的源代码(构建cache_page时)。

现在我不得不说在生成页面缓存的缓存键时我没有忽略查询字符串。