Django 自動エスケープをオフにする

django 

HTML の自動エスケープ

デフォルトでは、Django はすべてのテンプレートの変数タグの出力を自動的にエスケープするよう設定されています。具体的には、以下の 5 つの文字がエスケープされます。

 

  • < を &lt; に変換
  • > を &gt; に変換
  • ' (single quote) is converted to &#x27;
  • " ( ダブルクォート ) を &quot; に変換
  • & を &amp; に変換

 

 

自動エスケープをオフにする

サイト単位やテンプレート単位、あるいは変数単位でデータの自動エスケープ機能を無効にしたい場合には、いくつかの方法があります。

 

変数単位での制御

This will be escaped: {{ data }}
This will not be escaped: {{ data|safe }}

 

テンプレートブロック単位での制御

{% autoescape off %}
    Hello {{ name }}
{% endautoescape %}

 

 

Django 特定のHTMLタグを許可する方法 

一括ではなく、Djangoで特定のHTMLタグと属性を許可する方法はこちら