我正在传递名为'list'的列表进行查看,我希望创建带有href属性的链接作为forloop.counter0
迭代的列表元素的值。
据我所知,获取list元素需要这样的代码:
{{ list.0 }}
但是如何使用forloop.counter0
值进行迭代?
我做的是这样的:
{% for name in names %}
<tr>
<a href="/foo/bar/{{ list.forloop.counter0 }}">
{{ name }}
</a>
</tr>
{% endfor %}
但是这并没有适用任何价值,我尝试了更多的支持,但没有成功。
我该怎么做?
答案 0 :(得分:0)
修改:好的,谢谢你的澄清。我建议使用自定义模板标签。
创建yourapp/templatetags/
目录。在那里,创建一个名为__init__.py
的空白文件(这是Django确认该文件夹所必需的)和一个名为custom_tags.py
的文件。
在custom_tags.py
中创建一个类似的标记:
from django import template
register = template.Library()
@register.filter('list_index')
def list_index(mylist,index):
return mylist[index]
不在您的模板中,请添加到顶部:
{% load custom_tags %}
导入/初始化库。
现在您可以像这样使用此标记:
<a href="/foo/bar/{% list_index list forloop.counter0 %}">
从forloop.counter0提供的索引list
中检索项目。
快速注释 - list
位于Python标准库中,因此请勿将其用作变量名称(以防万一这是镜像代码)。