我想要做的是允许使用相同模板的不同但非常相似的视图。有一个url参考,其中唯一不同的是反向调用的后半部分。使用下面的例子,我得到一个NoReverseMatch
,如果下面的代码不被接受,这是有意义的。Django模板:在模板标签中使用双大括号
{% url outer:{{suffix}} %}
什么是实现这一目标的正确方法是什么?或者我有牺牲简洁性,并写出网址?
我使用Django 1.4
我想要做的是允许使用相同模板的不同但非常相似的视图。有一个url参考,其中唯一不同的是反向调用的后半部分。使用下面的例子,我得到一个NoReverseMatch
,如果下面的代码不被接受,这是有意义的。Django模板:在模板标签中使用双大括号
{% url outer:{{suffix}} %}
什么是实现这一目标的正确方法是什么?或者我有牺牲简洁性,并写出网址?
我使用Django 1.4
您可以使用 '与' 构建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 %}
应该正确打印您的网址。请注意,你不应该用''来包装后缀,因为它是可变的。
我会建议你创建templatetag代替。这样你就可以为模板标签提供后缀。
**尝试使用如下所示的引号将其打包:{% url "outer:{{suffix}}" %}
。
这没有奏效。 – af3ld
这究竟如何起作用?我的意思是我使用这种方法得到正确的URL。 ( –
)对不起,这不是很明确,当我按照原样运行代码片段时,我得到'NoReverseMatch'突出显示''中的链接。 Django声称为自定义模板标签所做的引用,同样的事情发生。我很感激帮助,其他知识会有帮助吗? – af3ld