我在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
以及如何使其工作?
答案 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 %}