1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | def get_cache_or_query(cache_key, model, seconds_to_cache=900, **kwargs):
'''
Based on concept by Rudy Menendez.
Gets the query from cache or returns the orm.
Example: the_game = get_cache_or_query('game1', Game,
seconds_to_cache=60*24*5, id=1) # 5 day timeout
'''
from django.core.cache import cache
q = cache.get(cache_key)
if not q:
q = model.objects.get(**kwargs)
cache.set(cache_key, q, seconds_to_cache)
return q
|
Comments