2011-09-14 36 views
9

我在Django項目中測試Jinja2併產生奇怪的輸出。 當我呈現的形式,有些字符(< >等)HTML編碼Jinja 2 - 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; 

有沒有人知道這個問題?

回答

26

Jinja2試圖安全通過HTML-escaping the data。所以你必須使用|safefilter

雖然我沒有用的Django與Jinja2的,我相信這應該工作:

{{ form.as_p()|safe }} 
+0

大能正常工作。 謝謝! – Patrick

+5

@帕特里克:如果你覺得這篇文章有用,請[接受](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)。 –

+1

Upvoted。也幫助我! – Raj