Я испытываю то, что я считаю странным поведением. В частности, если у меня есть такая строка:
1984: учебная программа
Дональд Р. Хог, Центр обучения, Джордж Оруэлл
«Центр изучения публикаций» - обложка.
Это приводит к следующему после автоматического экранирования системой шаблонов Django:
1984: Учебная программа
Дональд Р. Хог, Центр обучения, Джордж Оруэлл
«Центр изучения публикаций» - Обложка.
Проблема, похоже, заключается в том, что "(цитата), которая должна стать "
, экранируется дважды, что приводит к &"
. Это приводит к странно выглядящему форматированию. Я использую Django 1.0.2, поэтому должно быть в курсе (хотя я должен отметить, что я использую Ubuntu 9.04 с включенным пакетом python-django), но это поведение кажется противоречащим предполагаемому поведению.
Я немного посмотрел на django.utils.html.py, который включает саму функцию:
def escape (html):
"" "Возвращает данный HTML-код с закодированными амперсандами, кавычками и вставками." ""
return mark_safe(force_unicode(html).replace('&','&').replace('<','<').replace('>', '>').replace('"', '"').replace("'",'''))
escape = allow_lazy (escape, unicode)
Во всяком случае, похоже, что он должен избегать & прежде всего, что было бы хорошо. Поэтому я подозреваю, что он вызывается дважды. Есть мысли?
Спасибо.
Обновление: Я подозревал, что это может иметь какое-то отношение к Django Ubuntu, который указан как "1.0.2-1", поэтому я установил "1.0.2-final" и испытываю та же проблема.