【发布时间】:2013-08-15 04:46:06
【问题描述】:
Django 说有 3 种方法可以关闭自动转义:
- 在变量后使用
|safe - 在块内使用
{% autoescape on %}和{% endautoescape %} - 使用像
context = Context({'message': message}, autoescape=False)这样的上下文
(1) 和 (2) 工作正常。但是我有模板来生成纯文本推送通知,并且我有大量模板要构建和维护。我可以通过并将{% autoescape on %} 和{% endautoescape %} 标签放在所有标签中,但是(3)应该允许我在视图中的一行中完成。
模板:
{% block ios_message %}{{message}}{% endblock %}
观点:
message = u"'&<>"
context = Context({'message': message}, autoescape=False)
render_block_to_string(template_name, 'ios_message', context)
输出:
u''&<>
block_render.py 的代码来自这里:https://github.com/uniphil/Django-Block-Render/blob/master/block_render.py。我从那里按原样使用它。
有谁知道是什么给的?
【问题讨论】:
-
您能发布
render_block_to_string()代码吗?这不是原生的 Django 快捷方式 -
哎呀 - 忘了它不是原生的。已添加 in 链接而不是粘贴所有 90 行!
标签: django django-templates escaping