Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用forloop.counter0作为索引按列表设置href值?_Python_Django_Django Templates - Fatal编程技术网

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

Python 如何使用forloop.counter0作为索引按列表设置href值?,python,django,django-templates,Python,Django,Django Templates,我正在将名为“list”的列表传递给视图,并且我想创建链接,其中href属性是由forloop.counter0迭代的列表元素的值 据我所知,获取列表元素需要这样的代码: {{ list.0 }} 但是如何使用forloop.counter0值进行迭代呢 我所做的是这样的: {% for name in names %} <tr> <a href="/foo/bar/{{ list.forloop.counter0 }}">

我正在将名为“list”的列表传递给视图,并且我想创建链接,其中href属性是由
forloop.counter0
迭代的列表元素的值

据我所知,获取列表元素需要这样的代码:

{{ list.0 }}
但是如何使用
forloop.counter0
值进行迭代呢

我所做的是这样的:

{% for name in names %}
    <tr>
         <a href="/foo/bar/{{ list.forloop.counter0 }}">
            {{ name }}
         </a>
    </tr>
{% endfor %}
{%for name in names%}
{%endfor%}
但这没有任何价值,我尝试了更多的括号,但没有成功


我该怎么做呢?

编辑:好的,谢谢你的澄清。我建议定制一个模板标签

创建一个
yourapp/templatetags/
dir。在这种情况下,创建一个名为
\uuuu init\uuuuuuu.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.0提供的索引处的
列表中检索项目


快速提示-
list
在Python标准库中,因此永远不要将其用作变量名(以防它镜像您的代码)。

我认为OP要求的是在模板中检索
list[forloop.counter0]
的语法。@LostMyGlasses Yes,这就是我想要达到的目标。@JacekKozakowski你们的问题已经有了答案。谢谢你们的帮助。