Django的{%include with var =“val”%}更新上下文

时间:2015-04-09 11:16:49

标签: django django-templates

我只是想通了,如果你使用with包含子模板,变量将在基本模板中可用。很容易重现:

Test: {{ test }}
{% include "tpl.txt" with test="passed" %}
Test: {{ test }}

输出:

Test:
Test: passed

这是一个错误吗?

UPD。我必须说tpl.txt内有take_context=True的包含标记。此包含标记也是这样做的:

@register.inclusion_tag('my_tag.txt', takes_context=True)
def my_tag(context):
    context.update({'new': 'key'})
    return context

如果您没有update上下文,或者context['new'] = 'key'它没有按预期工作。如果您执行update - 您使用{% include %}传递给with的所有变量都会在模板中稍后提供。仍然有点奇怪,因为变量在父模板中可用,并且没有更新的密钥(“新”)可用,但{% include %}变量。问题是本地化的。

0 个答案:

没有答案