Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.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 如何使用Jijna2唯一过滤器_Python_For Loop_Flask_Jinja2 - Fatal编程技术网

Python 如何使用Jijna2唯一过滤器

Python 如何使用Jijna2唯一过滤器,python,for-loop,flask,jinja2,Python,For Loop,Flask,Jinja2,我试图通过jinja for循环只显示唯一的结果。我有 {% for i in items %} {{ i.item_name | unique }} {% endfor %} 我收到此错误:jinja2.exceptions.TemplateAssertionError:没有名为“unique”的筛选器。任何帮助都将不胜感激。编辑 在版本2.10中添加了unique。您可以检查和 要升级jinja2版本,您可以执行以下操作: pip install --upgrade jinja2

我试图通过jinja for循环只显示唯一的结果。我有

{% for i in items %}
    {{ i.item_name | unique }}
{% endfor %}
我收到此错误:jinja2.exceptions.TemplateAssertionError:没有名为“unique”的筛选器。任何帮助都将不胜感激。

编辑 在版本
2.10
中添加了
unique
。您可以检查和

要升级jinja2版本,您可以执行以下操作:

pip install --upgrade jinja2

这在版本
2.10
中对我有效,将过滤器直接应用于列表:

from jinja2 import Template


template = Template("""
  {% for x in a|unique %}
    <li>{{ x }}</li>
  {% endfor %}
""")

r = template.render(a=[1, 2, 3, 4, 1, 5, 4])

print(r)
来自jinja2导入模板的

模板=模板(“”)
|unique%}
  • {{x}
  • {%endfor%} """) r=template.render(a=[1,2,3,4,1,5,4]) 印刷品(r)
    输出:

    <li>1</li>
    
    <li>2</li>
    
    <li>3</li>
    
    <li>4</li>
    
    <li>5</li>
    
  • 1
  • 二,
  • 三,
  • 四,
  • 五,

  • 我假设项目是一个列表。如果您只希望唯一,为什么不在呈现页面之前执行此操作确定。你用的是什么版本的jinja?我用的是jinja2.8我已经更新了我的答案。似乎您至少需要
    2.10