Django、自動HTML「サニタイズ」HTMLをテンプレートにするとき、それを停止する方法は?

StackOverflow https://stackoverflow.com/questions/3551599

質問

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

もあります オートエスケープ 距離のブロック幅を制御します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top