【django】テンプレートでlist型、dict型の要素を一つだけ出力させる

Django

djangoではテンプレートに変数を渡すことができます。
それは単一の変数だけではなく、list型やdict型も同様です。

ただ、list型やdict型は全ての値を出力させる場合が多く
{% for ~ in %} 文などを使えば、すべての値を出すことができます。

今回は反対にlist型やdict型の中のたった一つだけの値を出してみます。

例えば、views.pyでは

from django.shortcuts import render

def sample_page(request):

    sample1 = [1, 2, 3]
    sample2 =[ [4, 5, 6], [7, 8, 9] ]
    sample3 = {'a':10 , 'b': [11, 12, [13, 14, 15]]}

    context={
        'forms':forms,
        'sample1':sample1,
        'sample2':sample2,
        'sample3':sample3,
    }

    return render(request, ‘sample_page.html', context)

として、2つのlist型と1つのdict型を作成します。
さらにlistの中にlistであったり
dictの中にlistがある形をとってみました。

では、テンプレートでviews.pyで作成したlist型とdict型から
変数をたった一つを出すように出力していきます。

今回は、sample1 から1番目の要素「1」
sample2 から1番目の要素の中の3番目の要素「6」
sample3からキー ‘a’ の値とキー ‘b’ の値から
3番目の要素であるリストから更に3番目の要素を出力します。

〜前略〜

<p>{{sample1.0}}</p>
<p>{{sample2.0.2}}</p>
<p>{{sample3.a}}</p>            
<p>{{sample3.b.2.2}}</p>

以上が必要なテンプレート変数です。単純ですね。

実際の出力はこんな感じです。シンプルです。

狙い通りの箇所が出力されています。

listの場合はドットと数字で表現をします。
{{ sample.0 }} や{{ sample.0.2 }} のような形です。
listの中にlistが入っていても同じ形で書いて出力できます。

dictの場合はドットと’キー’を入れる形をとります。
{{ sample.a }} や {{ sample.b }}などです。

また、dict型の値がlist型であっても数字を入れれば
さらに細かな箇所まで出力できます。{{ sample.b.2.2 }}などです。

list型やdict型の中のたった一つだけの値を出す方法の説明は以上です。

タイトルとURLをコピーしました