6 ответов:
если вы не хотите, чтобы HTML экранировался, посмотрите на и
autoescapetagфильтр:
{{ myhtml |safe }}
http://docs.djangoproject.com/en/dev/ref/templates/builtins/#safeтеги:
{% autoescape off %}{{ myhtml }}{% endautoescape %}http://docs.djangoproject.com/en/dev/ref/templates/builtins/#autoescape
использовать
autoescapeчтобы отключить экранирование HTML:{% autoescape off %}{{ message }}{% endautoescape %}
Если вы хотите сделать что-то более сложное с вашим текстом, Вы можете создать свой собственный фильтр и сделать некоторую магию, прежде чем возвращать html. С файлом templatag выглядит так:
from django import template from django.utils.safestring import mark_safe register = template.Library() @register.filter def do_something(title, content): something = '<h1>%s</h1><p>%s</p>' % (title, content) return mark_safe(something)тогда вы можете добавить это в свой файл шаблона
<body> ... {{ title|do_something:content }} ... </body>и это даст вам хороший результат.
вы можете отобразить шаблон в своем коде следующим образом:
from django.template import Context, Template t = Template('This is your <span>{{ message }}</span>.') c = Context({'message': 'Your message'}) html = t.render(c)посмотреть Django docs для получения дополнительной информации.
самый простой способ-использовать
safeфильтр:{{ message|safe }}Проверьте документация Django для безопасного фильтра для получения дополнительной информации.
нет необходимости использовать фильтр или тег в шаблон. Просто используйте format_html () для перевода переменной в html, и Django автоматически отключит для вас переменную.
format_html("<h1>Hello</h1>")проверьте здесь https://docs.djangoproject.com/en/1.9/ref/utils/
Comments