0

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

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

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

我正在使用 Django 1.4

4

2 回答 2

1

您可以使用 '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 %}

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

于 2016-12-13T21:59:44.067 回答
-3

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

**尝试将其用引号括起来,如下所示:{% url "outer:{{suffix}}" %}.

于 2016-12-13T21:37:19.000 回答