0

重複の可能性:
django テンプレートでリスト項目を動的に取得する

変数カウンターでリスト項目を取得する方法。目的は、リストの代わりにアイテムを取得することです

このようではない

{% for item in listModels %} 
 {{ item | safe }} 

{% endfor %}

だから働く

{% for i in listModels|length|get_range %} // get size list 

 {{ listModels.i | safe }}

{% endfor %}

動作しない

{% for i in listModels|length|get_range %} // get size list 

 {{ listModels.i | safe }}

{% endfor %}
4

3 に答える 3

1

Django テンプレートでは、これを行うことはできません。テンプレートからロジックを除外するように説教するつもりはありません。これは文体上の選択だと思うからです。ただし、これが最も簡単な方法であることを理解してください。インデックスを使用する必要がある場合は、ドキュメントforloopで説明されているように、プロパティとしてアクセスできます。

変数インデックスが本当に必要な場合は、独自のカスタム テンプレート タグを作成してそれを行うことができます。ただし、この場合、Django テンプレート言語を苦しめるのではなく、Jinja2などのより強力なテンプレート言語を使用することをお勧めします。

于 2013-01-09T19:02:21.087 に答える
0

私は次のように修正しました:

{{ listModelsData|lookup:i|lookAttribute:"author" }} -// this equal listModelsData[i].author - this code in python 

@register.filter
def lookAttribute (d, token):
     return getattr (d, token)
于 2013-01-09T19:38:04.230 に答える
0

Django テンプレート言語は、これを行う方法を提供します...

{% for item in listModels %} 
 {{ forloop.counter }} 

{% endfor %}
于 2013-01-09T19:05:15.877 に答える