AngularJSさんの裏でDjangoを使うときに最初に実装したこと。


 今の職場にお世話になってからもろもろを鑑みPHPを中心にやってきていたりしましたが、昨年の秋口くらいから開き直って好きなようにやろうってことで、表AngularJSさん、裏Djangoさんみたいな構成でWebアプリを作ったりしております。そんなこんなでそれなりにそれなりな知識も得てきましたので適当にメモしておきたいなぁと思っておりまして幾星霜……。

 とかいろいろありますが、とりあえず最初に実装した。と思われるものからコツコツと……。

 AngularさんとDjangoさんを一緒に使うときにまず問題として思われるのが、奇しくも同じになってしまっているテンプレート記号であるところの「{{ }}」ですよね。「アホか、Djangoなんて裏で使うんだからJSONとかデータだけ返しといてテンプレートなんて使わねえんだよ」という議論もあろうかと思いますが、何かと便利なので使ってるんです、ボク。

 そんなわけで、「{{ }}」だけ透過すればいいので、というか、文字列を挟んであげて出力させてあげればいいので、そういう風なカスタムフィルターを拵えました。


@register.filter(name='ng')
@stringfilter
def wrapped_angularjs_templatetag(value):
    return '{{' + value + '}}'

 Djangoさんでのカスタムフィルターの作成方法はドキュメント等をご確認くださいませ。

 {{ 'spam'|ng }} -> {{ spam }}

 みたいに変換されて出力されますよ。

 で、この話ってものすごく既視感あるなぁと思ったら、以前jQueryさんのTemplateプラグインを使った時と同じ内容なんですよねー。とか白々しい。jQueryさんのTemplate、あれからどうなってしまったんでしょうか、本体組み込み延期くらいまでは話題に上っていたのになぁ。まぁ、そんな時代。

 ここまで引っ張っておいてちなみに、ですが、

 jrief/django-angular · GitHub

 Framework的なのももちろん開発されてます、そらそうです。ボク使ってないので、誰か使って教えてくださいー。