TECH I.S.

Django forタグ


Forループ

forループは、配列、リスト、または辞書内の項目をループするなど、シーケンスを反復処理するために使用されます。

リストの項目をループします。

{% for x in fruits %} <h1>{{ x }}</h1> {% endfor %}

実行例(開発準備中) »

辞書のリストをループします。

{% for x in cars %} <h1>{{ x.brand }}</h1> <p>{{ x.model }}</p> <p>{{ x.year }}</p> {% endfor %}

実行例(開発準備中) »


モデルからのデータ

モデル内のデータは、行と列からなるテーブルのようなものです。

前に作成したモデルMemberには5つの行があり、各行には3つの列があります。

ID firstname lastname phone joined_date
1 Emil Refsnes 5551234 2022-01-05
2 Tobias Refsnes 5557777 2022-04-01
3 Linus Refsnes 5554321 2021-12-24
4 Lene Refsnes 5551234 2021-05-01
5 Stalikken Refsnes 5559876 2022-09-29

モデルからデータをフェッチすると、それは上記の車の例と同様の形式、つまり辞書を含むリストのQuerySetオブジェクトとして提供されます。

<QuerySet [ { 'id': 1, 'firstname': 'Emil', 'lastname': 'Refsnes', 'phone': 5551234, 'joined_date': datetime.date(2022, 1, 5) }, { 'id': 2, 'firstname': 'Tobias', 'lastname': 'Refsnes' 'phone': 5557777, 'joined_date': datetime.date(2021, 4, 1) }, { 'id': 3, 'firstname': 'Linus', 'lastname': 'Refsnes', 'phone': 5554321, 'joined_date': datetime.date(2021, 12, 24) }, { 'id': 4, 'firstname': 'Lene', 'lastname': 'Refsnes', 'phone': 5551234, 'joined_date': datetime.date(2021, 5, 1) }, { 'id': 5, 'firstname': 'Stalikken', 'lastname': 'Refsnes', 'phone': 5559876, 'joined_date': datetime.date(2022, 9, 29) } ]>

データベースから取得したアイテムをループします。

{% for x in members %} <h1>{{ x.id }}</h1> <p> {{ x.firstname }} {{ x.lastname }} </p> {% endfor %}

実行例(開発準備中) »


Reversed

このreversedキーワードは、ループを逆の順序で実行する場合に使用します。

{% for x in members reversed %} <h1>{{ x.id }}</h1> <p> {{ x.firstname }} {{ x.lastname }} </p> {% endfor %}

実行例(開発準備中) »


Empty

キーワードemptyは、オブジェクトが空の場合に特別な処理を行う場合に使用できます。

<ul> {% for x in emptytestobject %} <li>{{ x.firstname }}</li> {% empty %} <li>No members</li> {% endfor %} </ul>

実行例(開発準備中) »

このemptyキーワードは、オブジェクトが存在しない場合にも使用できます。

<ul> {% for x in myobject %} <li>{{ x.firstname }}</li> {% empty %} <li>No members</li> {% endfor %} </ul>

実行例(開発準備中) »


ループ変数

Djangoには、ループ内で使用できる変数がいくつかあります。

  • forloop.counter
  • forloop.counter0
  • forloop.first
  • forloop.last
  • forloop.parentloop
  • forloop.revcounter
  • forloop.revcounter0

forloop.counter

1から始まる現在の反復。

<ul> {% for x in fruits %} <li>{{ forloop.counter }}</li> {% endfor %} </ul>

実行例(開発準備中) »

forloop.counter0

0から始まる現在の反復。

<ul> {% for x in fruits %} <li>{{ forloop.counter0 }}</li> {% endfor %} </ul>

実行例(開発準備中) »

forloop.first

ループが最初の繰り返しであるかどうかをテストできます。

ループの最初の反復で青色の背景を描画します。

<ul> {% for x in fruits %} <li {% if forloop.first %} style='background-color:lightblue;' {% endif %} >{{ x }}</li> {% endfor %} </ul>

実行例(開発準備中) »

forloop.last

ループが最後の反復にあるかどうかをテストできます。

ループの最後の繰り返しの青色の背景を描画します。

<ul> {% for x in fruits %} <li {% if forloop.last %} style='background-color:lightblue;' {% endif %} >{{ x }}</li> {% endfor %} </ul>

実行例(開発準備中) »

forloop.revcounter

最後から開始し、逆方向に数えて1になる場合の現在の反復。

<ul> {% for x in fruits %} <li>{{ forloop.revcounter }}</li> {% endfor %} </ul>

実行例(開発準備中) »

forloop.revcounter0

最後から開始して逆方向にカウントし、0で終わる場合の現在の反復。

<ul> {% for x in fruits %} <li>{{ forloop.revcounter0 }}</li> {% endfor %} </ul>

実行例(開発準備中) »



プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細