2010-11-22 18 views
5

それは困難ではない特定のテンプレートキャッシュを無効にする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) 

しかし、私はそれらに渡される特定の変数を持っているすべてのキャッシュされたフラグメントを削除する必要があります。たとえば、車のブランド「Toyota」に関するすべてのキャッシュされたフラグメントを削除します。

{% cache 100000 car_content car.brand %} 

基本的には、特定の基準に基づいてすべてのcache_keysを取得する方法がありますか?私はキャッシュソースを変更することについて危険を冒していると思っていましたが、この問題に対するよりよい解決策があるかどうかは疑問でした。

答えて

0

キャッシュキーで日付を使用します。

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

すべての断片が、ブランドが変更されますたびに作成される方法。

関連する問題