2010-11-22 70 views
5

它不是要拼命在Django无效特定模板缓存Django的 - 到期基于变量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) 

但是我有一个情况我需要删除产生了一定的变量的所有缓存片段传给他们。例如,删除所有关于汽车品牌“丰田”的缓存片段。

{% cache 100000 car_content car.brand %} 

基本上有一种方法可以根据一定的条件获取所有cache_keys吗?我曾经危险地想过更改缓存源,但我想知道是否有更好的解决方案来解决这个问题。

回答

0

在缓存键使用日期:

{% cache 100000 car_content car.brand car.brand.last_modified %} 

这样所有碎片,每个品牌被修改时创建的。