Django模板:在模板标签中使用双花括号

时间:2016-12-13 21:29:35

标签: python django django-templates templatetags

我想要做的是允许不同但非常相似的视图使用相同的模板。有一个url引用,它们之间唯一不同的是反向调用的后半部分。使用下面的示例,我得到一个NoReverseMatch,如果不接受下面的代码,这是有意义的。

{% url outer:{{suffix}} %}

实现这一目标的正确方法是什么?还是我牺牲了简洁,写出了网址?

我正在使用Django 1.4

2 个答案:

答案 0 :(得分:1)

您可以使用'with'构建网址,然后将其传递给网址模板标记:

{% with 'outer:'|add:suffix as link_url %}
    <a href="{% url link_url %}">link</a>
{% endwith %}

UPD:要使django 1.4正常运行,您应该添加{% load url from future %} ,如下所示:

my_template.html:

{% load url from future %}
{% url 'outer:'|add:suffix %}

应正确打印您的网址。注意,你不应该用''包装后缀,因为它是变量。

答案 1 :(得分:-3)

我建议您改为创建templatetag。这样,您就可以为模板标签提供后缀。

**尝试将其包装在引号中:{% url "outer:{{suffix}}" %}