class InMemoryCachingManager(models.Manager): use_for_related_fields = True #Use this manager even for foreign keys def __init__(self, *args, **kwargs): self.lookup_fields = kwargs.get('lookup_fields', []) self.cache = LRUCacheDict(max_size=kwargs.get("max_size", 1024), expiration=kwargs.get("expiration", 15*60)) _del_keys(kwargs, ['max_size', 'expiration', 'lookup_fields'] ) super(InMemoryCachingManager, self).__init__(*args, **kwargs) def get_query_set(self): return CachingQuerySet(self.model) def clear_cache(self): self.cache.clear()
def __init__(self, *args, **kwargs): self.lookup_fields = kwargs.get('lookup_fields', []) self.cache = LRUCacheDict(max_size=kwargs.get("max_size", 1024), expiration=kwargs.get("expiration", 15*60)) _del_keys(kwargs, ['max_size', 'expiration', 'lookup_fields'] ) super(InMemoryCachingManager, self).__init__(*args, **kwargs)