2013-07-18 56 views
0
{% for record in records%} 

string1 = 'views.' + record.field1 + record.field2 

<a href ="{%url string1 %}>Test this</a> 

{%endfor%} 

這是HTML/Django中的可能嗎? 我的需求是動態創建變量「string1」並將其傳遞到url中。 尋求幫助。Django中的動態URL/HTML

回答

0

使用{% with %}

{% with "views."|add:record.field1|add:record.field2 as string1 %} 
    <a href="{% url string1 %}">Test this</a> 
{% endwith %} 

但這不考慮,因爲你對你的模板中有效地把邏輯IMO最佳實踐。

這應該通過您的record模型上的方法來處理,而不是,可能是field_url或其他東西。 這種方式你不違反幹,你不會冒任何其他人搞亂你的網址加上你會得到一個機會,在揭露他們之前正確地清理你的網址。

def field_url(self): 
    return "views.{0}{1}".format(self.field1, self.field2) 

,並呼籲在模板

{% for record in records %} 
    <a href="{% url record.field_url %}">My URL</a> 
{% endfor %} 
+0

加入{%ENDWITH%}。仍然錯誤「反向'string1'與參數'()'和關鍵字參數'{}'沒有找到。字符串1的視圖存在於urls.py –

+0

我已經這樣做了嗎??:) –

+0

在第一種方法'string1'在範圍{%url string1%}內不可用作填充變量。 –