我想要做的是允许不同但非常相似的视图使用相同的模板。有一个 url 引用,它们之间唯一不同的是反向调用的后半部分。使用下面的示例,我得到一个NoReverseMatch
,如果不接受下面的代码,这是有道理的。
{% url outer:{{suffix}} %}
实现这一目标的正确方法是什么?还是我牺牲简洁性,并写出网址?
我正在使用 Django 1.4
我想要做的是允许不同但非常相似的视图使用相同的模板。有一个 url 引用,它们之间唯一不同的是反向调用的后半部分。使用下面的示例,我得到一个NoReverseMatch
,如果不接受下面的代码,这是有道理的。
{% url outer:{{suffix}} %}
实现这一目标的正确方法是什么?还是我牺牲简洁性,并写出网址?
我正在使用 Django 1.4
您可以使用 '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 "outer:{{suffix}}" %}
.