Джинджа 2 - Джанго Форма: рендеринг кодирует HTML - PullRequest
9 голосов
/ 14 сентября 2011

Я тестировал Jinja2 в проекте Django и получил странный вывод.Когда я отображаю форму, некоторые символы кодируются в формате 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 Ответ

27 голосов
/ 14 сентября 2011

Jinja2 пытается обезопасить себя HTML-экранированием данных . Таким образом, вы должны использовать |safe фильтр .

Хотя я не использовал Django с Jinja2, я считаю, что это должно работать:

{{ form.as_p()|safe }}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...