python - эскейп в шаблоне django - PullRequest
0 голосов
/ 02 апреля 2012

a = 'abc'

HTML специальные символы в шоу, когда статья.

> {{ a | escape }}

'abc'

Когда я показываю, что я хочу unescape.

> {{ a | escape | safe }}

TemplateSyntaxError: Invalid filter: 'safe'

Произошла ошибка.

> from django.utils.safestring import mark_safe

> a = mark_safe(a)

Эта ошибка также возникает.

Django не делает ток не применяется к сейфу?

У вас есть какие-либо идеи покак убежать?

(я разрабатываюсь в google-appengine.)

1 Ответ

2 голосов
/ 02 апреля 2012

Не совсем понятно, о чем вы спрашиваете, но вы можете отключить автоматическое экранирование Django с помощью autoescape шаблона тега .Например:

>>> from django.template import Template, Context
>>> c = Context(dict(a = '<a href="#fragment">Link</a>'))
>>> Template("{{ a }}").render(c)
u'&lt;a href=&quot;#fragment&quot;&gt;Link&lt;/a&gt;'
>>> Template("{% autoescape off %}{{ a }}{% endautoescape %}").render(c)
u'<a href="#fragment">Link</a>'

mark_safe также работает:

>>> from django.utils.safestring import mark_safe
>>> Template("{{ a }}").render(Context(dict(a = mark_safe(a))))
u'<a href="#fragment">Link</a>'
...