2009-10-09 5 views
5

В моем администраторе, у меня есть текстовое поле, где пользователь может ввести HTML:Как я могу вставить фактический html из модели в шаблон?

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

Когда я нажимаю выше в шаблон, и я просмотреть исходный код страницы, я получаю:

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

Что мне делать с моим выходом, чтобы я видел фактический html в источнике страницы?

ответ

6

Вам нужен «безопасный» фильтр. Так как это автокресло.

{{ my_html|safe }} 
0

Смотрите документацию теги шаблонов here, проверьте описание autoescape тегов.

0

Под «текстовой областью», вы имеете в виду <textarea>?

Потому что если это так, спасаясь < к &lt; (и др) является то, что вы должны делать внутри текстового поля или любого другого элемента HTML: Django делает правильные вещи. Вы видите правильную, расшифрованную версию текста на странице; кто заботится о том, как выглядит источник?

Если вы не избежать содержимого текстового поля вы не только недействительных HTML, вы также открываете себя для атак, где пользователь вводит:

</textarea> 
<script> 
    steal(document.cookie); 
    location.href= 'russian malware site'; 
    // etc. 
</script> 
Смежные вопросы