Это возможно с помощью Django Advanced Cache Templatetag .
Для питона 3: pip install django-adv-cache-tag
Для поддержки Python 2: pip install 'django-adv-cache-tag<1.0'
Добавить 'adv_cache_tag'
к INSTALLED_APPS=[...]
Добавьте ADV_CACHE_RESOLVE_NAME = True
в ваши settings.py
Изменить {% load cache %}
с {% load adv_cache %}
Из документации:
Если для ADV_CACHE_RESOLVE_NAME
установлено значение True
, вы можете сделать это, если у вас есть
переменная с именем фрагмент_имя в вашем контексте:
{% cache 0 fragment_name obj.pk obj.date_last_updated %}
А если вы хотите передать имя, вы должны заключить его в кавычки:
{% cache 0 "myobj_main_template" obj.pk obj.date_last_updated %}
Если для ADV_CACHE_RESOLVE_NAME
установлено значение False
, по умолчанию используется имя
всегда рассматривается как строка, но если они заключены в кавычки, они удаляются.