在模板标签中设置全局模板变量
我知道有一些上下文处理器可以做到这一点,但我想在模板标签中设置全局模板变量。到目前为止,我尝试了这个:
class SetNode(template.Node):
def __init__(self, key, nodelist):
self.key = key
self.nodelist = nodelist
def render(self, context):
value = self.nodelist.render(context)
for d in context.dicts:
d[self.key] = value
return ''
也就是说,遍历所有上下文并设置变量,但这并没有成功。有人能解释一下怎么做吗?比如,base.html:
{{ my_var }} {# I want to set this variable in child template #}
{% block content %}
{% endblock %}
child.html:
{% extends 'base.html' %}
{% block content %}
{% set my_var %}Hello{% endset %}
{% endblock %}
这到底有没有可能呢?
1 个回答
0
这里有一个经典的好东西:{% expr %} 标签。这个代码的意思很简单,自己看就明白。
需要注意的是,使用这个标签可能会把你的一些业务逻辑放到模板里,但有时候这样做也是可以的。