首页 > 解决方案 > Flask:Jinja for 循环每个模板只工作一次

问题描述

我有一个 Flask 应用程序,我正在使用 for 循环动态生成 html:

    {% for subcategory in subcategories|unique: %}
List of projects:
        <p> {{ subcategory }}</p>
        {% endfor %}


    {% for subcategory in subcategories|unique: %}
List of subcategories:
       <p> {{ subcategory }}</p>
        {% endfor %}

但是,第二个 for 循环不会产生任何结果。

如果我删除“|唯一”,那么它可以工作。

为什么?

标签: pythonflaskjinja2

解决方案


您可能传入的是生成器,而不是列表或其他可迭代对象。

一个示例生成器可能是:

subcategories = [str(item) for item in subcategories]

在 Python 端,尝试将项目包装在列表中,然后再将其发送到 Jinja 渲染器:

subcategories = list([str(item) for item in subcategories])


推荐阅读