def get_flapage_from_cache(url): """ Try get flatpage from cache entry with all flatpages by url. If not found, create cache and return flatpage from db. This probably avoid some hits on DB. """ site_id = settings.SITE_ID cache_key = make_flatpages_cache_key() flatpages = cache.get(cache_key) if flatpages and url in flatpages: return flatpages[url] # flatpages cache not exist or flatpage not found. # 1. get all flatpages. flatpages = dict([(f.url, f) for f in FlatPage.objects.filter( sites__id__exact=site_id).order_by('url')]) # 2. if url not in flatpages, raise Http404 if url not in flatpages: raise Http404 # 3. if url in flatpages, recreate cache and return flatpage cache.delete(cache_key) cache.add(cache_key, flatpages) return flatpages[url]
def get_flapage_from_cache(url): """ Try get flatpage from cache entry with all flatpages by url. If not found, create cache and return flatpage from db. This probably avoid some hits on DB. """ site_id = settings.SITE_ID cache_key = make_flatpages_cache_key() flatpages = cache.get(cache_key) if flatpages and url in flatpages: return flatpages[url] # flatpages cache not exist or flatpage not found. # 1. get all flatpages. flatpages = dict([(f.url, f) for f in FlatPage.objects.filter(sites__id__exact=site_id).order_by('url')]) # 2. if url not in flatpages, raise Http404 if url not in flatpages: raise Http404 # 3. if url in flatpages, recreate cache and return flatpage cache.delete(cache_key) cache.add(cache_key, flatpages) return flatpages[url]
def clean_flatpages_cache(sender, **kw): """ Invalidate flatpages cache, because some flatpage was saved! """ cache.delete(make_flatpages_cache_key())