избежать проблемы в шаблонах Django - PullRequest
9 голосов
/ 16 мая 2009

Допустим, у меня есть эта строка:

s = '<p>Hello!</p>'

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

{{s|safe}}

или отключить автоэкранирование:

{%autoescape off}
{{s}}
{%endautoescape%}

или внутри кода python объявить его безопасным:

from django.utils.safestring import mark_safe
s = mark_safe(s)

Ни один из этих вариантов не работает для меня. Что бы я ни делал, строка отображается как:

<p>Hello!</p>

Должно быть, я что-то упустил, просто не могу понять, что. Есть ли где-нибудь настройки безопасности, запрещающие побег?

РЕДАКТИРОВАТЬ: Bizarre, проблема, кажется, исчезла после перезагрузки компьютера.

Ответы [ 3 ]

6 голосов
/ 10 декабря 2010

Я думаю, вы должны написать следующее

{{s|escape|safe}}

это нормально для меня

2 голосов
/ 16 мая 2009

Вы в значительной степени покрыли это, это действительно все способы отключить автоэкранирование.

Вы уверены, что значение, о котором вы говорите, на самом деле s = '<p>Hello!</p>'?

Я догадываюсь, что у вас есть дополнительный выход где-то в этой строке ...

0 голосов
/ 21 января 2010

Посмотрите на исходный код HTML, он сбежал! ??? Я так не думаю. Это должна быть печать по буквам, вот так:

<
p
>
H
E
L
L
O
<
/
>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...