如何使用forloop.counter0作为索引按列表设置href值?

时间:2016-02-15 17:30:44

标签: python django django-templates

我正在传递名为'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 %}

但是这并没有适用任何价值,我尝试了更多的支持,但没有成功。

我该怎么做?

1 个答案:

答案 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标准库中,因此请勿将其用作变量名称(以防万一这是镜像代码)。