django:dict中的超链接到html模板的超链接

时间:2011-07-08 03:07:24

标签: django django-templates

我与hyderlink有关,例如:

data = [{a:<\a href="http://someexample.com/a">a</a>,
        b:'<\a href="http://someexample.com/b">b</a>'}]

注意:这里我添加 / a href ,因为堆栈溢出使其具有超链接

如果我想在html中输出它,它会显示一个普通的html文本而不是超链接

模板

<table>
{% for fetch in data %}
<tr>
<td>{{ fetch.a }}</td>
<td>{{ fetch.b }}</td>
</tr>
{% endfor %}
</table>

它提供输出,如html文本而不是超链接

  1. &lt; \ a href =“http://someexample.com/a”&gt; a
  2. &lt; \ a href =“http://someexample.com/b”&gt; b
  3. 任何帮助它真的很感激。

2 个答案:

答案 0 :(得分:2)

您应该只存储URL(如果您将其存储在模型中,则使用URLField),而不是存储整个锚标记,然后将其包含在模板中,如下所示:

<table>
    {% for fetch in data %}
    <tr>
        <td><a href="{{ fetch.a }}">{{ fetch.a }}</a></td>
        <td><a href="{{ fetch.b }}">{{ fetch.b }}</a></td>
    </tr>
    {% endfor %}
</table>

答案 1 :(得分:1)

这是因为模板引擎中的automatic string escaping而发生的。您可以使用safe过滤器阻止转义,例如:

<table>
{% for fetch in data %}
<tr>
<td>{{ fetch.a|safe }}</td>
<td>{{ fetch.b|safe }}</td>
</tr>
{% endfor %}
</table>