0
{% for record in records%}

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

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

{%endfor%}

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

4

1 回答 1

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 %}
于 2013-07-18T08:48:53.777 回答