from django.core.cache import cache def cached_or_set(key, timeout, func): value = cache.get(key) if value is None: value = func() cache.set(key, value, timeout) return value