Django / HTML中的动态URL

时间:2013-07-18 08:44:35

标签: html django-templates

{% for record in records%}

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

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

{%endfor%}

这可能在HTML / Django中吗? 我需要动态地创建变量'string1'并将其传递给url。 请求帮助。

1 个答案:

答案 0 :(得分:0)

使用{% with %}

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

但由于您在模板中有效地设置了逻辑,因此这不被视为IMO的最佳实践。

这应该由您的record模型上的方法处理,可能称为field_url或其他。 通过这种方式,您不会违反DRY,并且您不会冒任何其他人弄乱您的网址,并且在暴露之前您将有机会正确清理您的网址。

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 %}