# This acts as a wrapper around the django cache. # It adds the current SITE_ID to the keys # # Add following to your settings.py # ------------ # CACHE_BACKEND = 'custom_cache://' # CUSTOM_CACHE_BACKEND = 'locmem:///?timeout=300&max_entries=6000' from django.conf import settings from django.core.cache import get_cache from django.core.cache.backends.base import BaseCache WRAPPED_CACHE = get_cache(settings.CUSTOM_CACHE_BACKEND) class CacheClass(BaseCache): def __init__(self, *args): # nothing pass def add(self, key, *args): return WRAPPED_CACHE.add(self._key(key),*args) def get(self, key, *args): return WRAPPED_CACHE.get(self._key(key),*args) def set(self, key, *args): return WRAPPED_CACHE.set(self._key(key),*args) def delete(self, key): return WRAPPED_CACHE.delete(self._key(key)) def get_many(self, keys): keys = [self._key(key) for key in keys] return WRAPPED_CACHE.get_many(keys) def has_key(self, key): return WRAPPED_CACHE.has_key(self._key(key)) def __contains__(self, key): return WRAPPED_CACHE.__contains__(self._key(key)) def _key(self,key): return "%s|%s" % (settings.SITE_ID, key)