投稿日:
2018年4月9日
最終更新日:
【プログラミング備忘録】Djangoのテンプレートでの配列操作(ループ/件数取得)について
YouTubeも見てね♪
【最新機種】GoPro hero11 Black
created by Rinker
¥61,300
(2025/01/05 20:59:47時点 楽天市場調べ-詳細)
最新機種でVlogの思い出を撮影しよう!
[ノースフェイス] THE NORTH FACE メンズ アウター マウンテンライトジャケット
防水暴風で耐久性抜群なので旅行で大活躍です!
モンスターエナジー 355ml×24本 [エナジードリンク]
脳を活性化させるにはこれ!
ドラゴンクエスト メタリックモンスターズギャラリー メタルキング
みんな大好き経験値の塊をデスクに常備しておこう!
Bauhutte ( バウヒュッテ ) 昇降式 L字デスク ブラック BHD-670H-BK
メインデスクの横に置くのにぴったりなおしゃれな可動式ラック!
BANDAI SPIRITS ULTIMAGEAR 遊戯王 千年パズル 1/1スケール
もう一人の僕を呼び覚ませ!!
MOFT X 【新型 ミニマム版】 iPhone対応 スマホスタンド
Amazon一番人気のスマホスタンド!カード類も収納出来てかさ張らないのでオススメです!
Templateでの配列操作
ループ処理
サーバーロジックで配列をレスポンスとして返した場合、テンプレート側でリスト表示したい事があると思います。
1
2
3
4
|
response = {
'numbers': [1,2,3,4,5]
}
return render(request, 'list/index.html', response)
|
その場合は以下のように記述する事で配列をループ操作する事が可能になります。
1
2
3
4
5
6
|
<div>
{% for user in users %}
<p>Name:{{user.name}}</p>
<p>Age:{{user.age}}</p>
{% endfor %}
</div>
|
配列の要素数
レスポンスに含まれる配列の要素数を取得したいケースもあると思います。
その場合、以下のようにlen関数を使って取得しがちです。
1 |
<p>Count:{{len(users)}}</p>
|
しかし、Djangoではエラーになってしまいます。
1 |
django.template.exceptions.TemplateSyntaxError: Could not parse the remainder: '(users)' from 'len(users)'
|
len関数はTemplate側では定義されていないので使う事が出来ません。
正しくは以下のように「{配列}|(パイプ)length」を利用して取得します。
AngulerJSのフィルターみたいな感じになりますね。
1 |
<p>Count:{{users|length}}</p>
|
無事に表示されましたね。