如何在Flask/Jinja中实现嵌套评论?
就像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