Django のテンプレートエンジンで配列の要素数を取得したい

Pocket

Django の話です。ちょっとした技術ネタなのでボリュームはないです。

view で、例えば posts とかいうリストをテンプレートに渡しているとしましょう。

そして、リストの個数を取得したい時、Python風に言うとこうしたいです。

<p>{{ len(posts) }}件の投稿</p>

でもこの関数はテンプレートエンジンの中では動きません。

<p>{{ posts|length }}件の投稿</p>

という風に書けば、きちんと表示されます。

わかりにくいかもしれないですが、
posts「|」length
という風に、縦棒で区切られています。
ちなみに、この縦棒は vertical bar という名前らしいです。

これは Django のフィルターという機能で、こういう風に棒線によって区切ることで関数の呼び出しができるみたいです。

ドキュメントに詳細が書かれています。

おしまい。

Pocket