A companion to Cache Decorator.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | from django.core.cache import cache
def stales_cache(cache_key):
def paramed_decorator(func):
def decorated(self, *args, **kw):
key = cache_key % self.__dict__
cache.delete(key)
return func(self, *args, **kw)
decorated.__doc__ = func.__doc__
decorated.__dict__ = func.__dict__
return decorated
return paramed_decorator
# usage
class SomeClass(models.Model):
# fields
name = CharField(...)
@stales_cache("SomeClass_some_key_that_depends_on_name_%(name)")
@stales_cache("SomeClass_some_other_key_that_depends_on_name_%(name)")
def update_name(self, new_name):
self.name = new_name
self.save()
|
More like this
- Template tag - list punctuation for a list of items by shapiromatron 10 months, 2 weeks ago
- JSONRequestMiddleware adds a .json() method to your HttpRequests by cdcarter 10 months, 3 weeks ago
- Serializer factory with Django Rest Framework by julio 1 year, 5 months ago
- Image compression before saving the new model / work with JPG, PNG by Schleidens 1 year, 6 months ago
- Help text hyperlinks by sa2812 1 year, 6 months ago
Comments
Please login first before commenting.