Django 模板缓存 - 基于模板变量的动态键
Django template cache - Dynamic key based on template variable
我需要使用参数作为前缀来存储模板缓存。
Es。
有:
{% cache 5 :name:variable1: variable_y variable_z %}
<p> {{variable1}} </p>
{% endcache %}
其中 variable1 是一个字符串
我需要存储:
:1:template.cache:name:"variable1 value":.0ecadd093a225ba502d3f6490e19b4
其实我得到:
:1:template.cache:name:variable1:.0ecadd093a225ba502d3f6490e19b4
其中 variable1 是变量名。
有办法吗?
谢谢
可以使用 Django Advanced Cache Templatetag。
对于python3:pip install django-adv-cache-tag
对于python2支持:pip install 'django-adv-cache-tag<1.0'
将 'adv_cache_tag'
添加到 INSTALLED_APPS=[...]
在您的 settings.py
中添加 ADV_CACHE_RESOLVE_NAME = True
将{% load cache %}
更改为{% load adv_cache %}
来自文档:
将 ADV_CACHE_RESOLVE_NAME
设置为 True
,如果你有
在您的上下文中名为 fragment_name 的变量:
{% 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
,默认,名字是
始终被视为字符串,但如果被引号括起来,它们将被删除。
我需要使用参数作为前缀来存储模板缓存。
Es。 有:
{% cache 5 :name:variable1: variable_y variable_z %}
<p> {{variable1}} </p>
{% endcache %}
其中 variable1 是一个字符串
我需要存储:
:1:template.cache:name:"variable1 value":.0ecadd093a225ba502d3f6490e19b4
其实我得到:
:1:template.cache:name:variable1:.0ecadd093a225ba502d3f6490e19b4
其中 variable1 是变量名。
有办法吗? 谢谢
可以使用 Django Advanced Cache Templatetag。
对于python3:pip install django-adv-cache-tag
对于python2支持:pip install 'django-adv-cache-tag<1.0'
将 'adv_cache_tag'
添加到 INSTALLED_APPS=[...]
在您的 settings.py
中添加ADV_CACHE_RESOLVE_NAME = True
将{% load cache %}
更改为{% load adv_cache %}
来自文档:
将 ADV_CACHE_RESOLVE_NAME
设置为 True
,如果你有
在您的上下文中名为 fragment_name 的变量:
{% 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
,默认,名字是
始终被视为字符串,但如果被引号括起来,它们将被删除。