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

Django Template: using double curly brace in template tag

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

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

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

我正在使用 Django 1.4

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

** 像这样用引号括起来:{% url "outer:{{suffix}}" %}.

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

{% 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 %}

应该正确打印您的 url。注意,你不应该用''包裹后缀,因为它是可变的。