Я использую шаблоны Django в среде, отличной от HTML, поэтому, естественно, я бы хотел отключить автоматическое экранирование HTML.
Как мне отключить его на глобальном уровне?
Я знаю о множестве вариантов локального подавления автоматического выхода:
Эти опции подавляют глобально включенный автоматический переход, где в моем случае использования я хотел бы иметь обратное.
Согласно документам должна быть опция 'autoescape' для бэкэнда DjangoTemplates.
Я даже нашел запрос функции и commit , который его добавил.
Но, похоже, у меня это не работает.
Минимальный пример:
from django.template import Context
from django.template import Template
import django
from django.conf import settings
TEMPLATES = [
{
"BACKEND": "django.template.backends.django.DjangoTemplates",
"OPTIONS":
{
"autoescape": False
}
}
]
settings.configure(TEMPLATES=TEMPLATES)
django.setup()
template = Template("My name is {{ my_name }}.")
context = Context({"my_name": "<FooBar>"})
print(template.render(context))
Ожидаемый результат:
My name is <FooBar>.
Фактическая выработка:
My name is <FooBar>.
Я, наверное, упускаю что-то глупое.
Может ли кто-нибудь просветить меня?
Моя виртуальная среда:
python==3.6.5
Django==2.1.7
pip==9.0.3
pytz==2018.9
setuptools==39.0.1