2

サイトの管理者によって生成されたコンテンツがたくさんあります。ほとんどすべてのテンプレート変数に "|safe}}" を追加することになります。これは面倒です。

すべての変数を自動的に安全にマークし、代わりに必要に応じてエスケープを使用することはできますか?

4

1 に答える 1

5

Django テンプレートの自動エスケープを使用して、ブロック内の自動エスケープを決定することで実行できます。

セクションHow to turn it off on the Django book Chapter 9で概説されているように (セクションAutomatic HTML Escapingのテキストを探してください):

サイトごと、テンプレートごと、または変数ごとにデータを自動エスケープしたくない場合は、いくつかの方法でオフにすることができます。

このサイトごとの方法は、基本テンプレート (すべてのテンプレートが継承するテンプレート) を持つことです。これは、すべてのコンテキスト ブロック{% autoescape off %}の一番上と最後に指定するだけです。{% endautoescape %}

include自動エスケープ タグは、すべてのブロック タグと同様に、現在のテンプレートを拡張するテンプレートと、タグを介して含まれるテンプレートにその効果を渡します。

@ChrisPratt がコメントしたように:

ユーザーが送信したコンテンツが自動エスケープから除外されることを許可しないでください。

于 2012-08-08T15:56:03.480 に答える