これは簡単なことかもしれませんが、私は周りを見回して、答えを見つけることができませんでした。Djangoテンプレートからリスト内の単一のアイテムを参照する最良の方法は何ですか?
言い換えれば{{ data[0] }}
、テンプレート言語内で同等のことをするにはどうすればよいですか?
ありがとう。
これは簡単なことかもしれませんが、私は周りを見回して、答えを見つけることができませんでした。Djangoテンプレートからリスト内の単一のアイテムを参照する最良の方法は何ですか?
言い換えれば{{ data[0] }}
、テンプレート言語内で同等のことをするにはどうすればよいですか?
ありがとう。
回答:
のように見えます{{ data.0 }}
。変数とルックアップを参照してください。
より良い方法:カスタムテンプレートフィルター: https //docs.djangoproject.com/en/dev/howto/custom-template-tags/
テンプレートのget my_list [x]など:
テンプレート内
{% load index %}
{{ my_list|index:x }}
templatetags / index.py
from django import template
register = template.Library()
@register.filter
def index(indexable, i):
return indexable[i]
場合my_list = [['a','b','c'], ['d','e','f']]
、{{ my_list|index:x|index:y }}
テンプレートで使用して取得できますmy_list[x][y]
「for」でうまく機能します
{{ my_list|index:forloop.counter0 }}
テスト済みで正常に動作しています^ _ ^
{% for id in article_details.heading.contents.article_ids %} {% if id.type == 'DOI' %} {{ article_details.heading.contents.article_ids.forloop.counter0.value }} {% endif %} {% endfor %}
@ jennifer06262016では、djangoクエリセット内のオブジェクトを返す別のフィルターを確実に追加できます。
@register.filter
def get_item(Queryset):
return Queryset.your_item_key
その場合は、次のような{{Queryset | index:x | get_item}}をテンプレートに入力して、辞書オブジェクトにアクセスします。わたしにはできる。
{{ data.foo }}
ところ、foo
その中のインデックス値ではなく、プロパティ名を持つ変数です。