2016-12-13 143 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}}" %}