質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Q&A

1回答

1328閲覧

Djangoのtemplate内でリストのインデックスを変数で指定したい

JohnWilliams

総合スコア0

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

0グッド

0クリップ

投稿2021/10/29 05:53

前提・実現したいこと

長さの違うbool_listとindex_listで、bool_listが1の場合、index_listを参照して、次にまたbool_listが1になったら、その次のindex_listを参照するようにしたい。

該当のソースコード

views

1... 2return render(request, "index.html", {"bool_list":[1,1,0,1],"index_list":["a","b","c"]})

index

1{% load func %} 2# 自作タグでここでj=0と定義 3{%for i in bool_list%} 4{%if i is 1%} 5<div>{{index_list.j}}</div> #ここでリストの参照をしたい 6# 自作タグでここで j+=1 と再定義 7{%endif%} 8{%endfor%}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

やりたいことは以下のような感じでしょうか。
期待する出力結果(行数)が不明だったので2つのケースでの例を示しています。
参考:How to increment a variable on a for loop in jinja template?

Python

1{% set idx = namespace(j=0) %} 2{% for i in bool_list %} 3 <!-- {{index_list[idx.j]}} --> <!-- a b c c --> 4 {% if i == 1 %} 5 <!-- {{index_list[idx.j]}} --> <!-- a b c --> 6 {% set idx.j = idx.j+1 %} 7 {%endif%} 8{%endfor%}

投稿2021/10/29 06:28

can110

総合スコア38278

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問