如何在Django模板中使用整数变量作为下标

时间:2018-01-11 17:55:24

标签: django templates

我在Django模板中有一个for循环:

{% for i in no_of_lift_series_range %}
    {{ workout.lifts.series.i.activity_name }}
{% endfor %}

无法输出任何内容。问题在于使用i。我知道这一点,因为:

{% for i in no_of_lift_series_range %}
    {{ workout.lifts.series.0.activity_name }}
{% endfor %}

输出它应该输出的内容。为什么我不能以我想要的方式使用i以及如何使其工作?

2 个答案:

答案 0 :(得分:2)

我会创建custom template filter以按索引获取列表项目:

@register.filter
def get_by_index(mylist, index):
    return mylist[index]

您可以像这样使用它:

{% for i in no_of_lift_series_range %}
    {% with item=workout.lifts.series|get_by_index:i %}
        {{ item.activity_name }}
    {% endwith %}
{% endfor %}

答案 1 :(得分:-2)

你的逻辑似乎有些偏差。也许你应该做这样的事情:

{% for activity in workout.lifts.series %}
    {% with forloop.counter as count %}
        {{ count }} - {{ activity.activity_name }}
    {% endwith %}
{% endfor  %}