2016-12-13 142 views
0

我想要做的是允许使用相同模板的不同但非常相似的视图。有一个url参考,其中唯一不同的是反向调用的后半部分。使用下面的例子,我得到一个NoReverseMatch,如果下面的代码不被接受,这是有意义的。Django模板:在模板标签中使用双大括号

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

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

我使用Django 1.4

回答

1

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

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

+0

这没有奏效。 – af3ld

+0

这究竟如何起作用?我的意思是我使用这种方法得到正确的URL。 ( –

+0

)对不起,这不是很明确,当我按照原样运行代码片段时,我得到'NoReverseMatch'突出显示''中的链接。 Django声称为自定义模板标签所做的引用,同样的事情发生。我很感激帮助,其他知识会有帮助吗? – af3ld

-3

我会建议你创建templatetag代替。这样你就可以为模板标签提供后缀。

**尝试使用如下所示的引号将其打包:{% url "outer:{{suffix}}" %}