Jinja 2 - Django Form:渲染编码HTML

Pat*_*ick 9 python django jinja2

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

在模板中:

{{ form.as_p() }}
Run Code Online (Sandbox Code Playgroud)

它呈现给浏览器:

<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>
Run Code Online (Sandbox Code Playgroud)

看来源:

&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;
Run Code Online (Sandbox Code Playgroud)

有谁知道这个问题?

pla*_*aes 27

Jinja2试图通过HTML转义数据来保证安全.所以你必须使用|safe 过滤器.

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

{{ form.as_p()|safe }}
Run Code Online (Sandbox Code Playgroud)

  • @Patrick:如果你发现这篇文章有用,请[接受](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work). (5认同)