Jinja 2 - Django Form:渲染编码HTML

时间:2011-09-14 10:17:05

标签: python django jinja2

我在Django项目中测试Jinja2并且有一个奇怪的输出。 当我渲染表单时,一些字符是HTML编码的(< >等。)

在模板中:

{{ form.as_p() }}

它呈现给浏览器:

<p><label for="id_username">Utilisateur:</label> <input autocomplete="off" id="id_username" type="text" name="username" maxlength="100" /></p> <p><label for="id_password">Mot de passe:</label> <input autocomplete="off" type="password" name="password" id="id_password" /></p>

看来源:

&amp;lt;p&amp;gt;&amp;lt;label for=&amp;quot;id_username&amp;quot;&amp;gt;Utilisateur:&amp;lt;/label&amp;gt; &amp;lt;input autocomplete=&amp;quot;off&amp;quot; id=&amp;quot;id_username&amp;quot; type=&amp;quot;text&amp;quot; name=&amp;quot;username&amp;quot; maxlength=&amp;quot;100&amp;quot; /&amp;gt;&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;&amp;lt;label for=&amp;quot;id_password&amp;quot;&amp;gt;Mot de passe:&amp;lt;/label&amp;gt; &amp;lt;input autocomplete=&amp;quot;off&amp;quot; type=&amp;quot;password&amp;quot; name=&amp;quot;password&amp;quot; id=&amp;quot;id_password&amp;quot; /&amp;gt;&amp;lt;/p&amp;gt;

有谁知道这个问题?

1 个答案:

答案 0 :(得分:27)

Jinja2试图通过HTML-escaping the data安全。因此,您必须使用|safe filter

虽然我没有将Django与Jinja2一起使用,但我相信这应该有效:

{{ form.as_p()|safe }}