如何在Flask/Jinja中实现嵌套评论?

4 投票
2 回答
5294 浏览
提问于 2025-04-16 23:08

就像Hacker News和Reddit上的评论一样。我看过Jinja的文档,但找不到关于递归的内容(我想这就是实现这种功能的方法)。有没有什么建议?

提前谢谢你们。

编辑:

我已经有数据了(来自一个API),评论是有子评论的对象。我只需要知道如何在Jinja中递归地渲染这些子评论。

2 个回答

7

除非你提供一个例子,说明你的评论数据是怎么排列的,不然我只能给你一个基本的例子,来说明递归循环是怎么工作的:

{%- for item in comments recursive %}
    <li>{{ item.text }}</li>
    {%- if item.children -%}
        <ul class="children">{{ loop(item.children) }}</ul>
    {%- endif %}</li>
{%- endfor %}
5

使用宏,它们支持递归。http://jinja.pocoo.org/docs/templates/#macros

补充:循环也支持递归,这样做也可以。http://jinja.pocoo.org/docs/templates/#for

撰写回答