Markdownの変換結果等、エスケープせずそのまま出力したいケースがある
- 対応方法は2つある
- {% autoescape off %} {% endautoescape %}で囲んだ部分にhtmlを指定する
- safeフィルタを利用する
Django テンプレート言語 — Django v1.0 documentation
1: {% autoescape off %} {% endautoescape %}で囲んだ部分にhtmlを指定する
<!-- any_template.html --> {% autoescape off %} {{ markdown_result }} <div>divタグ</div> <b>ボールド</b> {% endautoescape %}
2: safeフィルタを利用する
<!-- any_template.html -->
{{ markdown_result|safe }}
感想
- safeっていうフィルタ名を見て、勝手に「escapeを目的としたテンプレートフィルタ」だと思ってしまっていた。思い込みって怖い
- autoescape offは前にもどこかでやった気がする