Представление Django возвращает строку, которая неправильно представлена ​​в HTML-шаблон - PullRequest
4 голосов
/ 27 апреля 2009

Представление, которое я использую, возвращает строку в шаблон HTML. Возвращаемая строка содержит специальные символы, которые неправильно представлены в шаблоне. Проще говоря, строка, возвращаемая из представления, может выглядеть так:

test = "\"Foo bar\""
return render_to_response('index.html', {'test': test})

И отображается в html-шаблоне так:

& quot;Foo bar& quot;

Как исправить кодировку, чтобы она отображалась правильно?

Ответы [ 2 ]

12 голосов
/ 27 апреля 2009

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

{{ test|safe }}

Или сделайте это в виде:

from django.utils.safestring import mark_safe
test = mark_safe("\"Foo bar\"")

Обратите внимание, что при этом вы сообщаете Django, что содержимое строки безопасно и не требует экранирования HTML. Если вы планируете сделать что-либо, что может исходить от пользователя, это сделает вас уязвимым для атак XSS, поэтому используйте с осторожностью.

0 голосов
/ 28 апреля 2009

Лучше всего обратиться к документации Django, которая подробно объясняет это:

https://docs.djangoproject.com/en/2.0/ref/templates/language/#automatic-html-escaping

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...