【Django】テンプレートで多重リストから要素を取り出す方法
リスト、多重リストから要素を取り出すには、リスト名の後にインデックス番号を記述します。
以下のようなリストがあった場合、
number = 100
sample_list = [["a","b","c","d"],
["e","f","g","h"],
["i","j","k","l"],
number,
None,
[]]
sample_list[0]と記載すると、[‘a’, ‘b’, ‘c’, ’d’]を、sample_list[2]と記載すると、[‘i’, ‘j’, ‘k’, ’l’]を取得することができます。
また、sample_list[0][0]と記載すると、‘a’を取得することができます。
sample_list[3]と記載するとnumberの100を取得することができます。
sample_list[4]はNoneなので何も返ってきませんが、sample_list[5]では空のリスト[]が返ってきます。
Djangoのviews.pyにてsample_listを作り、テンプレートで表示する場合は次のようにします。
{{ sample_list.0 }} ## ['a', 'b', 'c', 'd']
{{ sample_list.0.0 }} ## 'a'
{{ sample_list.0.0 }} ## 'a'
{{ sample_list.3 }} ## 100
views.pyにて複数のクエリセットや変数をリストに入れてテンプレートで取り出したい場合、次のようにすると要素を取得することができます。
views.py
qs_list = [qs0, qs1, number]
qs0, qs1 のフィールドにtitle,contents,date
があった場合、
template
##qs0
{% for qs0 in qs_list.0 %}
{{ qs0.title }}
{{ qs0.contents }}
{{ qs0.date }}
{% endfor %}
##qs1
{% for qs1 in qs_list.1 %}
{{ qs1.title }}
{{ qs1.contents }}
{{ qs1.date }}
{% endfor %}
## number
{{ qs_list.2 }}
あまり使う機会はないかもしれませんが、views.pyのリストが以下のように多重リストの場合。
qs_lists = [[qs0, qs1, number],
[qs0, qs1, number],
[qs0, qs1, number],
[qs0, qs1, number],
...]
template
{% for qs_list in qs_lists %}
{% for qs0 in qs_list.0 %}
{{ qs0.title }}
{{ qs0.contents }}
{{ qs0.date }}
{% endfor %}
{% for qs1 in qs_list.1 %}
{{ qs1.title }}
{{ qs1.contents }}
{{ qs1.date }}
{% endfor %}
{{ qs_list.2 }} ## number
{% endfor %}
以上になります。
参考記事
Pythonのリストからの要素の取り出し(抽出)方法のまとめ
[Django]テンプレートでobjectsの配列番号を指定する方法
お薦め
コロナワクチンを接種した自衛隊員のうち、400人が接種後に死亡https://t.co/hPJ0FGGdSI
— RAPT理論+α (@Rapt_plusalpha) October 25, 2022
【名古屋】河村たかし市長、国に「マイナ保険証」義務化撤回を求める「任意のはずのカード取得が強制的に取得を求められることは、法治国家として許されない」https://t.co/ZOs3ll6t3o
— RAPT理論+α (@Rapt_plusalpha) October 26, 2022
【BuzzFeed Newsの闇】元朝日新聞記者が「コロナワクチンを接種した自衛隊員のうち、400人が接種後に死亡」との情報を“フェイク”と主張し、言論弾圧を図る 背後に中共のスパイ「孫正義」の影https://t.co/oaAKrEvVmw
— RAPT理論+α (@Rapt_plusalpha) October 26, 2022
【崩壊する日本の教育現場】心の病で休職する20代教員が2020年度までの5年間で1.5倍増 激務に追われて自殺するケースもhttps://t.co/Ucw4bJby7G
— RAPT理論+α (@Rapt_plusalpha) October 26, 2022
RAPTブログとの出会いによって、様々な病が治り、仕事のスピードも早くなって、はつらつと充実した人生を生きられるようになった(十二弟子・サキさんの証)https://t.co/jEpRZ3iGrz
— RAPT理論+α (@Rapt_plusalpha) October 26, 2022
【中共のスパイ・菅直人】「日本が必要とする年間1兆キロワットの電力全てを、太陽光発電で生み出すプロジェクトを発足させたい」と主張し、批判殺到https://t.co/DhG3fQ5cjD
— RAPT理論+α (@Rapt_plusalpha) October 26, 2022
【コロナワクチン接種の結果】2022年8月度の超過死亡数が激増 前年同月比で1万7845人も多い13万5649人にhttps://t.co/xuB8uTeleu
— RAPT理論+α (@Rapt_plusalpha) October 26, 2022
RAPTブログとの出会いにより、「誰かの役に立ちたい」という心の願いを叶えて、自分でも真に価値を感じられる人生を生きられるようになった(十二弟子・KAWATAさんの証)https://t.co/qsv1jI8rVE
— RAPT理論+α (@Rapt_plusalpha) October 24, 2022