2009-10-09 9 views
5

W moim administratora, mam pole tekstowe, w którym użytkownik może html wejściowe:Jak wstrzyknąć rzeczywisty html z modelu do szablonu?

<ul> 
    <li>blah</li> 
</ul> 
<p> 
    Stuffs 
</p> 

Kiedy wciskam wyżej do mojego szablonu i wyświetlić źródło strony, uzyskać:

&lt;ul&gt; 
    &lt;li&gt;blah&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt; 
    Stuffs 
&lt;/p&gt; 

Co powinienem zrobić z moimi danymi wyjściowymi, aby zobaczyć rzeczywisty html w źródle strony?

Odpowiedz

6

potrzebujesz "bezpiecznego" filtra. Ponieważ jest autoescaped.

{{ my_html|safe }} 
0

Patrz dokumentacja znaczniki szablonu here, sprawdzić opis autoescape tag.

0

Przez "obszar tekstowy" masz na myśli <textarea>?

Bo jeśli tak, uciekając < do &lt; (i inni) jest to, czego musi zrobić wewnątrz textarea lub innego elementu HTML: Django robi słusznie. Widzisz poprawną, zdekodowaną wersję tekstu na stronie; kogo obchodzi, jak wygląda źródło?

Jeśli nie uciec zawartość textarea jesteś nie tylko generować nieprawidłowe HTML, jesteś także otwarcie się na ataki gdzie wejść użytkownika:

</textarea> 
<script> 
    steal(document.cookie); 
    location.href= 'russian malware site'; 
    // etc. 
</script> 
Powiązane problemy