将模板标签传递给子模板

时间:2018-09-10 14:29:44

标签: django django-templates django-1.7 templatetags

我需要将模板标签的结果传递给子模板。

父模板:

{% template_tag param1 param2 as templink %}
{% include "child_template.html" with templink1=templink %}

child_template.html:

<a href="">Download</a>

模板标记的结果是一个URL,它是子模板中href的输入。模板标签是simple_tag。 使用“ as”进行变量分配会破坏应用程序。

可以使用哪些替代方法来评估模板标记并将URL传递给子模板?

1 个答案:

答案 0 :(得分:0)

在模板标签template_tag中接受上下文,并将结果存储在上下文中。

示例

# templatetags.py

@register.simple_tag(takes_context=True)
def template_tag(context, param1, param2):
    result = foo_bar_processor(param1, param2)
    context['foo_bar'] = result
    return result

<!-- parent_template.html -->
{% template_tag param1 param2 %}

{% include "child-template.html" with templink1=foo_bar %}