2008-09-30 2 views
1

Моей Django приложение имеет Person таблицу, которая содержит следующий текст в поле с именем "деталь":Почему Django не сбежит от моих <script> тегов?

< сценария > оповещения ('Hello'); </скрипт >

Когда я называю PersonForm.details в моем шаблоне, страница делает < скрипт > соответственно (а.к.а., отображается предупреждение со словом «Hello»). Я смущен этим поведением, потому что по умолчанию я всегда думал о содержании шаблона Django 1.0 autoescaped.

Любая идея, что может быть здесь?

ОБНОВЛЕНИЕ: Вот фрагмент моего шаблона. Ничего страшно сексуально:

{{ person_form.details }} 

UPDATE 2: Я попытался "бежать", "сила-бегство", и "escapejs". Ни одна из этих работ не работает.

ответ

4

Необходимо указать значения как | сейф я думаю (я предполагаю, что вы заполняете в значение из базы данных здесь (?)):

{{ value|safe }} 

Не могли бы вы опубликовать образец шаблона? Может сделать его легче увидеть, что случилось

[Редактировать] ..or вы говорите, что вы хотите это, чтобы избежать значения (сделать их безопасными)? Вы пробовали вручную спасаясь поле:

{{ value|escape }} 

[Edit2] Может escapejs from the Django Project docs это Релевент:

escapejs 

New in Django 1.0. 

Escapes characters for use in JavaScript strings. This does not make the string safe for use in HTML, but does protect you from syntax errors when using templates to generate JavaScript/JSON. 

[Edit3] насчет force_escape:

{{ value|force_escape }} 

.. . И я знаю, что это очевидно, но вы абсолютно уверены, что у вас нет кэширования. n ваш браузер? Я споткнулся об этом один раз сам ;-)

+0

Я попытался принудительно сбежать с помощью тега шаблона «побег». Нет кубиков. Что я * хочу * это сделать, это не отображать предупреждение, которое, на мой взгляд, должно было бы избежать значения. – Huuuze 2008-09-30 17:14:27

0

Обнаружил проблему. Суть JSON, которую я использую для рендеринга данных в некоторые виджеты Ext. Большое спасибо Джону Кейджу. Ответ принят, несмотря на то, что проблема вызвана другим источником.

Смежные вопросы