1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | # ...
from django.views.decorators.cache import cache_page
def optionally_cached_view(request, *args, **kwargs):
# ...
condition = ...
response = HttpResponse(...)
f = lambda request, *args, **kwargs: response
if condition:
cached_f = cache_page(f, 60*15)
return cached_f(request, *args, **kwargs)
return response
# for comparison, there are analogous examples of uncached and strictly-cached views:
def uncached_view(request, *args, **kwargs):
# ...
return HttpResponse(...)
def cached_view(request, *args, **kwargs):
# ...
return HttpResponse(...)
cached_view = cache_page(cached_view, 60*15)
|
More like this
- New view decorator to only cache pages for anonymous users by vaughnkoch 2 years, 7 months ago
- Template tag to create a list from one or more variables and/or literals by davidchambers 2 years, 8 months ago
- Effective content caching for mass-load site using redirect feature by nnseva 1 year, 10 months ago
- Per-Instance On-Model M2M Caching by bryanhelmig 2 years, 10 months ago
- Run and cache only one instance of a heavy request by farnsworth 2 years, 9 months ago
Comments