Login

invalidation of cache-template-tag cache

Author:
bram
Posted:
June 24, 2009
Language:
Python
Version:
1.0
Tags:
template cache invalidate
Score:
1 (after 1 ratings)

this function invalidates a template-fragment cache bit.

say you have:

{% load cache %} {% cache 600 user_cache user.id %} something expensive here {% endcache %}

maybe you want to force an update. With this function you can, just call:

invalidate_template_cache("user_cache", user.id)

1
2
3
4
5
6
7
8
9
from django.core.cache import cache
from django.utils.hashcompat import md5_constructor
from django.utils.http import urlquote
from functional import compose

def invalidate_template_cache(fragment_name, *variables):
    args = md5_constructor(u':'.join(apply(compose(urlquote, unicode), variables)))
    cache_key = 'template.cache.%s.%s' % (fragment_name, args.hexdigest())
    cache.delete(cache_key)

More like this

Comments

wiggins (on September 7, 2009):
<p>This didn't work for me on django1.1,</p> <p>The following did though:</p> <pre>def invalidate_template_cache(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) </pre>

#

tedtieken (on December 18, 2011):
<p>https://github.com/tedtieken/django-template-reset-cache</p> <p>Wraps the invalidation function in a template tag.</p>

#

Please login first before commenting.