web-dev-qa-db-ja.com

Django template?

これは簡単かもしれませんが、私は辺りを見回して答えを見つけることができませんでした。 Django=テンプレートからリスト内の単一のアイテムを参照する最良の方法は何ですか?

言い換えれば、どのように{{ data[0] }}テンプレート言語内で?

ありがとう。

87
user456584

{{ data.0 }}変数と検索 を参照してください。

152
Mike DeSimone

より良い方法:カスタムテンプレートフィルター: https://docs.djangoproject.com/en/dev/howto/custom-template-tags/

テンプレートでList [x]を取得するなど:

テンプレート内

{% load index %}
{{ List|index:x }}

templatetags/index.py

from Django import template
register = template.Library()

@register.filter
def index(List, i):
    return List[int(i)]

if List = [['a','b','c'], ['d','e','f']]、使用できます{{ List|index:x|index:y }}テンプレートを取得してList[x][y]

「for」で問題なく動作します

{{ List|index:forloop.counter0 }}

テスト済みで正常に動作しています^ _ ^

62
WeizhongTu

{{ data.0 }}は動作するはずです。

data.obj Djangoがdata.objdata.obj()を試行したとしましょう。動作しない場合は、data["obj"]が試行されます。あなたの場合、data[0]{{ data.0 }}と書くことができます。ただし、ビューでdata[0]を取得し、個別の変数として送信することをお勧めします。

21
yilmazhuseyin

@ jennifer06262016、間違いなく別のフィルターを追加して、Django Queryset。

@register.filter 
def get_item(Queryset):
    return Queryset.your_item_key

その場合、この{{Queryset | index:x | get_item}}のようなものをテンプレートに入力して、辞書オブジェクトにアクセスします。わたしにはできる。

1
Kendrick Fong