Django によると、自動エスケープをオフにする方法は 3 つあります。
|safe
変数の後に使用- ブロック内で
{% autoescape on %}
andを使用する{% endautoescape %}
- 次のようなコンテキストを使用します
context = Context({'message': message}, autoescape=False)
(1) と (2) は正常に動作します。しかし、プレーンテキストのプッシュ通知を生成するためのテンプレートがあり、作成して維持するテンプレートがたくさんある状況があります。{% autoescape on %}
すべてのタグにandタグを追加することもでき{% endautoescape %}
ますが、(3) ビュー内の 1 行で実行できるようにする必要があります。
テンプレート:
{% 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 からのものです。そこからそのまま使っています。
誰が何を与えるか知っていますか?