0

可能重复:
在 Django 模板中动态获取列表项

如何使用可变计数器获取列表项。目的是获取so项目而不是列表

不像这样

{% 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属性访问,如文档中所述

如果你真的想要变量索引,你可以制作自己的自定义模板标签来做到这一点。但是,在这种情况下,我建议你使用更强大的模板语言,比如Jinja2,而不是折磨 Django 模板语言。

于 2013-01-09T19:02:21.087 回答
0

Django 模板语言为您提供了一种方法来做到这一点......

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

{% endfor %}
于 2013-01-09T19:05:15.877 回答
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 回答