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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.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
在django中引用列表中的特定元素_Django_Python 2.7_Jinja2 - Fatal编程技术网

在django中引用列表中的特定元素

在django中引用列表中的特定元素,django,python-2.7,jinja2,Django,Python 2.7,Jinja2,我试图将一个列表中的元素复制到另一个列表中,我使用这段代码来实现这一点: {% for i in range(2,7) %} {{ list1.append(list2|lookup:i) }} {% endfor %} 列表1是一个空列表。 我还定义了如下自定义筛选器查找: @register.filter def lookup(d, key): return d[key] 但这不起作用,我得到一个错误: TemplateSyntaxError at / expected

我试图将一个列表中的元素复制到另一个列表中,我使用这段代码来实现这一点:

{% for i in range(2,7) %}
    {{ list1.append(list2|lookup:i) }}
{% endfor %}
列表1是一个空列表。 我还定义了如下自定义筛选器查找:

@register.filter
def lookup(d, key):
    return d[key]
但这不起作用,我得到一个错误:

TemplateSyntaxError at / expected token ',', got ':'.

我做错了什么。我不熟悉django和jinja模板。

代码中的问题是,您试图使用django模板中不允许的参数调用方法
append
。您应该使用所需的逻辑编写自己的标记。例如:

list2|copy

您可以使用以下简单的lambda进行过滤:

list1 + filter(lambda x: x if x not in list1 else None, range(2,7))

我也尝试过:{{read_list.append(read_notifications.I)}}但这不起作用,而当我编写{{read_list.append(read_notifications.0)}时,它起作用了。它可能不在django模板中,但在jinja2中,如果您想存储值,可以使用
+=
而不是
+
参见,jinja2过滤器使用类似函数的语法,
lookup:i
应该是
lookup(i)
lookup(i)不起作用。您首先需要正确地实现,似乎您正在像django模板一样实现它,并期望它像jinja2一样运行。遵循我给你的链接并正确地实现它。