Django、自動HTML「サニタイズ」HTMLをテンプレートにするとき、それを停止する方法は?
-
30-09-2019 - |
質問
DjangoテンプレートにはオプションのHTMLフィルターがあるように思われるので、私はこれにちょっと混乱していますが、これは自動的に起こっているようです。次に、これを新しいウィンドウに表示したいと思います。ディスプレイが戻ってきた場合を除いて、HTMLはこの形式でサニタイズされています(ページソースを表示すると、通常のHTMLとして表示されるブラウザでこれが表示されます。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml"><head><meta content="text/html; charset=utf-8" http-equiv="content-type" /><script type="text/javascript">//<![CDATA[
si_ST=new Date
これは、同じものの通常のHTMLバージョンです。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml"><head><meta content="text/html; charset=utf-8" http-equiv="content-type" /><script type="text/javascript">//<![CDATA[ si_ST=new Date //]]></script><script type="text/javascript">//<![CDATA[ _G={ST:(si_ST?si_ST:new Date),Mkt:"en-
これをHTMLテンプレートの基本ブロックに出力しているだけです。テンプレートには、他のフォーマット(HTMLなど)がありません。 HTML(したがって、HTMLテキストではなくブラウザにページが表示されます)は大歓迎です。ありがとう
解決
セーフフィルターを使用してください:
{{ myvariable|safe }}
テンプレートの大部分がこのように扱われる必要がある場合(つまり、自分が使用していることに気付いた場合 |safe
何度も)、あなたは自動エスケープ全販売を無効にすることができます:
{% autoescape off %}
blah {{myvariable}} blah {{myothervariable}}
{% endautoescape %}
他のヒント
Djangoのデフォルトエスケープを無効にする「安全な」フィルターをご覧ください。
http://docs.djangoproject.com/en/1.2/ref/templates/builtins/#safe
もあります オートエスケープ 距離のブロック幅を制御します。
所属していません StackOverflow