2013-07-18 55 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%}内不可用作填充变量。 –