Динамическое управление максимальным возрастом кэша при запросе в Django
В Django я могу использовать что-то вроде этого для управления максимальным возрастом кэша для запроса:
from django.views.decorators.cache import cache_control
@cache_control(max_age=3600)
def my_view(request):
# ...
Как я могу установить другой max_age
значение внутри функции представления, так что оно может зависеть от того, что request
содержание есть?
Пример:
def my_view(request):
if is_good_to_cache(request):
# set max_age to 36000
else:
# set max_age to 42
# ...
1 ответ
Решение
Как cache_control
пользуется patch_cache_control
внутренне, можно прямо поставить:
from django.utils.cache import patch_cache_control
def my_view(request):
if is_good_to_cache(request):
max_age = 36000
else:
max_age = 42
resp = render(...)
patch_cache_control(resp, max_age=max_age)
return resp