Django - 基于变量使 Django 模板缓存过期

标签 django caching django-templates

在 django 中使特定模板缓存失效并不难

def invalidate_cache_key(fragment_name, *variables):
   args = md5_constructor(u':'.join([urlquote(var) for var in variables]))
   cache_key = 'template.cache.%s.%s' % (fragment_name, args.hexdigest())
   cache.delete(cache_key)

但是,我有一种情况,我需要删除所有已传递给它们的特定变量的缓存片段。例如,删除有关汽车品牌“Toyota”的所有缓存片段。
{% cache 100000 car_content car.brand %}

基本上有没有办法根据一组特定条件获取所有 cache_keys ?我曾危险地考虑更改缓存源,但我想知道是否有更好的解决方案来解决这个问题。

最佳答案

我用缓存命名空间来做到这一点。这是一个体面的解释:

http://blog.dberg.org/2008/07/user-based-memcached-namespaces.html

关于Django - 基于变量使 Django 模板缓存过期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4241343/

相关文章:

python - Django - 格式化日期以从表单更新模型对象

java - Guava 11 : Cache not working with 5 minute refresh

PHP memcached 更新结果

未授予 Django 管理员访问权限

javascript - 使用 javascript 客户端的 Django Rest api 导致 post 请求出现 csrf 问题

python - Django导入/导出: ForeignKey fields return None

python - 为什么我的 django 模板不输出模板变量对象?

python - Django表单字段自定义属性分配和在模板中使用

python - 显示 Django 表单结果

perl - 缓存和避免 Cache Stampedes - 多个同时计算