2009-04-27 2 views
4

私が使用しているビューは文字列をHTMLテンプレートに返します。返される文字列には、テンプレートで正しく表現されていない特殊文字が含まれています。ビューから返される文字列は次のようになります簡単に言えば:Djangoビューは、htmlテンプレートで正しく表現されていない文字列を返します。

test = "\"Foo bar\"" 
return render_to_response('index.html', {'test': test}) 

そして、このようなHTMLテンプレートに表示されている:それはあるので、私はエンコーディングを修正することができますどのように

& quot;Foo bar& quot; 

正しく表示されますか?

答えて

12

印刷するときsafe filterを使用します。

{{ test|safe }} 

または、ビューでこれを行うに:

from django.utils.safestring import mark_safe 
test = mark_safe("\"Foo bar\"") 

これを行うことによって、あなたは文字列の内容が安全であることをDjangoに言っていることに注意してくださいHTMLエスケープは必要ありません。あなたが何かをユーザから出すことを計画しているなら、これはあなたにXSS攻撃の脆弱性を残すので、注意して使用してください。

0

あなたの最善の策は、これを詳細に説明するDjangoのドキュメントを、相談することです。

http://docs.djangoproject.com/en/dev/topics/templates/#id2

そして、一般的に、あなたはジャンゴのように基本的な、よく記載されている機能に驚いされている場合それはしばらくの間、コーディングを停止し、読んで理解して理解を深める時間になるかもしれません。

関連する問題