2009-09-18

Djangoのテンプレートのフィルタのescapejs

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
Djangoさんのテンプレートには、フィルタというものがついていてテンプレートにセットされた値にテンプレート側で値に対して修正を書けることができます。

Djangoさんのテンプレートないでjavascriptを記述していて、そのスクリプト内にある文字列を変数に代入しようとして

var aaa = "{{ test }}";

なんてしておいた時に、testの値に改行などが入っていた際には、javascriptが動かなくなります。

そんな感じを防止するために

var aaa = "{{ test|escapejs }}";

のような感じでescapejsというフィルターを使うとエラーにならないようにしてくれます。

でも、html的に安全でないとかいう感じで書いてあったので、私はこんな感じにしてみました。

var aaa = "{{ test|striptags|escapejs }}";


便利なDjangoのテンプレートのフィルターは、
http://djangoproject.jp/doc/ja/1.0/ref/templates/builtins.html#ref-templates-builtins-filters
で確認できます。
コメントを投稿