在Django模板中动态获取列表项

我在页面上有一些循环,需要根据循环号列出项目。

当我打电话时:

{{ mylist.1 }}

{{ mylist.2 }}

{{ mylist.3 }}

一切正常,但是我真正需要的是:

{% for x in somenumber|MyCustomRangeTag %}

{{ mylist.x }}

{% endfor %}

MyCustomRangeTag给了我range()它可以使用的Python ,而我已经拥有x了数量。x根据循环号,1、2、3等也是如此。这有可能吗?

回答:

这不可能直接实现,因为Django认为这"x"是查找的关键mylist-而不是x 的值。因此,当x = 5Django尝试查找mylist["x"]而不是mylist[5]

使用以下过滤器作为解决方法:

@register.filter

def lookup(d, key):

return d[key]

并像这样使用

{{ mylist|lookup:x }}

以上是 在Django模板中动态获取列表项 的全部内容, 来源链接: utcz.com/qa/402236.html

回到顶部