如何在'include'标记内访问{%url“name”%}

时间:2016-12-12 14:35:05

标签: django django-templates

我无法弄清楚如何在另一个{% %}标记内获取{%url“name”%}的值。就我而言,它是include

{% include "file" with next={% url "name" %} %}

这不起作用。你知道该怎么办吗?我会{% include..围绕{% with,但这会导致同样的问题。

1 个答案:

答案 0 :(得分:5)

django模板的快速回答:

{% url "name" as my_url_context_var %}
{% include "file" with next=my_url_context_var %}

更长的解释:

您无法嵌套{% … %}{{ … }}。打开{{ … }}的那一刻,您只能在内部使用上下文变量,可选择与模板过滤器结合使用。在{% … %}内,您只能使用您正在使用的标记识别,但一般来说,这只是一些参数,其中一些是静态字(例如as中的url上面的{1}}或with中的include,通常您也可以像{{ … }}内部一样访问模板变量和过滤器。

我对jinja并不熟悉,但似乎它的include不支持与django的include相同的变量传递,所以这里有一个关于它看起来像什么的想法和jinja一样:

{% set next=url('name') %}
{% include "file" %}