Django, автоматический HTML "Санитизация" При наличии HTML шаблона, как остановить его?

StackOverflow https://stackoverflow.com/questions/3551599

Вопрос

Я своего рода путающуюся этим, потому что кажется, что шаблоны Django имеют дополнительные HTML-фильтры, но это, похоже, происходит автоматически .. Я делаю это демонстрационное приложение, где пользователь сделает действие, которое вызывает скрипт Python, который извлекает URL, Затем я хочу отобразить это в новом окне. Это все хорошо, за исключением случаев, когда дисплей возвращается, HTML находится в этом формате (я вижу это, когда я просматриваю источник страницы, в браузере он показывает как обычный HTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml"><head><meta content="text/html; charset=utf-8" http-equiv="content-type" /><script type="text/javascript">//<![CDATA[
si_ST=new Date

Это обычная HTML-версия того же:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml"><head><meta content="text/html; charset=utf-8" http-equiv="content-type" /><script type="text/javascript">//<![CDATA[ si_ST=new Date //]]></script><script type="text/javascript">//<![CDATA[ _G={ST:(si_ST?si_ST:new Date),Mkt:"en-

Я просто выводя это в базовый блок в моем шаблоне HTML, шаблон не имеет другого форматирования (NO HTML, и т. Д.), всего 1 блок, где этот выход идет .. Любые советы по тому, почему это происходит и как отображать регулярные HTML (так что он показывает страницу в браузере, а не HTML-текст) ценится. Спасибо

Это было полезно?

Решение

Используйте безопасный фильтр:

{{ myvariable|safe }}

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

{% autoescape off %}
blah {{myvariable}} blah {{myothervariable}}
{% endautoescape %}

Другие советы

Взгляните на фильтр «Безопасный», который отключает исшивку Django по умолчанию:

http://docs.djangoproject.com/ru/1.2/ref/templates/builtins/#safe.

Существует также Autoescape какие элементы управления выходят в блок широко.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top