2008/02/06

DjangoのテンプレートでHTMLを出力

Djangoのテンプレートで直接HTMLを出力する必要があり、テンプレートのパラメータにHTMLを格納して出力したところタグがエスケープされてしまいました。

原因を調べたところ、「django.template.Context」クラスのコンストラクタのパラメータ「autoescape」がデフォルトでTrueになっているようです。

今まではショートカット「render_to_response」を使ってレスポンスを生成していましたが、下記のようにプログラムを変更して対応しました。


t = loader.get_template('post.html')
c = Context({'html':html}, False)
return HttpResponse(t.render(c))

Contextのコンストラクタの第2引数にFlaseを渡すのがポイントです。

ラベル: , ,

0 件のコメント :

コメントを投稿

この投稿へのリンク :

リンクを作成

<< ホーム