如何使用变量计数器获取列表项。目的是获得so项而不是list
不喜欢这个
{% 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 %}
答案 0 :(得分:1)
Django模板不允许你这样做。我不打算告诉你如何保持逻辑不在你的模板中,因为我认为这是一种风格选择。但要明白这是最简单的方法。如果您需要使用索引,则可以将其作为forloop
属性进行访问,如the documentation中所述。
如果您真的想要变量索引,可以创建自己的自定义模板标记来执行此操作。但是,在这种情况下,我建议您使用更强大的模板语言,如Jinja2,而不是折磨Django模板语言。
答案 1 :(得分:0)
Django模板语言为您提供了一种方法...
{% for item in listModels %}
{{ forloop.counter }}
{% endfor %}
答案 2 :(得分: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)