我需要使用参数作为前缀来存储模板缓存。
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是变量名。
有办法吗? 谢谢
答案 0 :(得分:0)
可以使用Django Advanced Cache Templatetag。
对于python 3: pip install django-adv-cache-tag
对于python 2支持: 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
的情况下,默认名称为
通常被视为字符串,但是如果用引号引起来,则会将其删除。