将模板标签传递给子模板

Pass a template tag to a child template

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

父模板:

{% 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 传递给子模板的可能替代方案是什么?

接受模板标签中的上下文 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 %}