Django:jQuery-tmplとの競合を回避する

競合を回避・・・できてないような気もしますが。

jQueryにも本家が作っているテンプレートエンジンがあって、それがjQuery-tmplというらしいです。さっき知ったのですが。いちいちJavaScriptでhtmlを組み立てるのは面倒いので、テンプレートエンジンないかなと思って調べたら、本家が作ってたと。さすが。

そのjQuery-tmplのタグですが、${var}みたいな感じで使えます。jQueryでおなじみの方式ですね。でもこのテンプレートエンジンの中で条件分岐とかループとかできんのかいな?と思っていたら、できるようです。
{{if var == 1}}
${var}
{{/if}}
みたいな感じ。

しかしですよ。{{ }}というデリミタは、Djangoの変数用のデリミタなのです。
普通にhtml内で使うと、Djangoのデリミタとして認識してしまうから使い物になりませんorz

Djangoで、文字列として{{ }}を出力できたら問題ないじゃないか!と思って調べたところ、これらの文字自体を出力する方法は、

<ul id="results"></ul>
<scrpit id="itemTemplate" type="text/x-jquery-tmpl">
{% templatetag openvariable %}each items{% templatetag closevariable %}
<li>${name} - ${price}</li>
{% templatetag openvariable %}/each{% templatetag closevariable %}
</script>

という形になります。{{という2文字が{% templatetag openvariable %}という、ものすごく冗長な書き方になるのはちょっとしんどいですが、滅多に登場しないであろうと考えて…。いや、登場するか…。


タグ Django, jQuery, Python | パーマリンク.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です