【実現したいこと】
Djangoのテンプレートで2つのリストデータを受け取り、多重forループ内でif文で2つのリストデータを比較して1回も一致しなかった場合に固定値(数字のゼロなど)を表示させたい。
以下、具体的に記載します。
view.pyで以下のリストデータを定義してテンプレートへ渡します。
python
1list_data1 = ['A001','A002','A003','A004'] 2list_data2 = [['A001','100'],['A002','200'],['A004','400']] 3 4return render(request, '****.html',{ 5 'list_data1': list_data1, 6 'list_data2': list_data2, 7 } )
■テンプレート側
python
1{% for x in list_data1 %} #ループ1 2 {% for a,b in list_data2 %} #ループ2 3 {% if a == x %} 4 {{b}} 5 {% endif %} 6 {% endfor %} 7{% endfor %}
上記で、forループ1でlist_data1が'A003'の回のループは
{% if a == x %}に該当するデータがない(list_data2に'A003'がない)
ので{{b}}の部分が表示されませんが、ループ1のlist_data1=A003において
ループ2を全部回した結果{% if a == x %}に合致するものが1回もなかった
場合に、固定値ゼロ「0」を表示させたいのですが、そのような制御をDjango
のテンプレートで実装する方法がわかりません。
実現方法がわかる方いましたら、ご教授のほどよろしくお願い致します。
環境:Django2.0.6
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/07 21:55