我有一个简单的自定义标记,它将返回一个对象列表
@register.simple_tag
def get_languages(obj):
return obj.get_languages()
有没有这样的方式,在我的模板中,我可以保存自定义标签的结果,以便我可以重复使用其他地方在我的HTML?
{% get_languages project as used_languages %}
<span class="tag">{{ used_languages.0.name }}</span>
<span class="tag">{{ used_languages.1.name }}</span>
<span class="tag">{{ used_languages.2.name }}</span>
答案 0 :(得分:1)
以下是记住标记的简单方法:
get_languages_cache = None
@register.simple_tag
def get_languages(obj):
if get_languages_cache is None:
get_languages_cache = obj.get_languages()
return get_languages_cache
这假定obj.get_languages()
永远不会返回None
。检查this question以获取进一步的讨论和Python中的memoization示例。