我在页面上有一些循环,需要根据循环号列出列表。
当我打电话时:
{{ mylist.1 }}
{{ mylist.2 }}
{{ mylist.3 }}
一切正常,但是我真正需要的是:
{% for x in somenumber|MyCustomRangeTag %}
{{ mylist.x }}
{% endfor %}
MyCustomRangeTag给我提供了Python
range()
,它可以正常工作,并且我已经将x
作为数字了。因此x
是1、2、3等,具体取决于循环号。这有可能吗?
最佳答案
这是不可能的,因为Django认为"x"
是在mylist
中查找的关键-而不是x的值。因此,当x = 5
时,Django会尝试查找mylist["x"]
而不是mylist[5]
。
使用以下过滤器作为解决方法:
@register.filter
def lookup(d, key):
return d[key]
并像这样使用
{{ mylist|lookup:x }}
关于django - 在Django模板中动态获取列表项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8948430/