您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何使用Django模板渲染树结构(递归)?

如何使用Django模板渲染树结构(递归)?

我认为规范的答案是:“不要”。

相反,您可能应该做的是在视图代码中分解内容,因此只需遍历模板中的(in | de)凹痕即可。我想我可以通过在循环遍历树时将缩进和缩进附加到列表中,然后将该“旅行”列表发送到模板来做到这一点。(然后,模板将插入该列表<li></li>从该列表中插入,以“理解”它来创建递归结构。)

我也很确定递归地包含模板文件确实是一种错误的方式…

使用with模板标记,我可以做树/递归列表。

样例代码

主模板:假设“ all_root_elems”是树的一个或多个根的列表

<ul>
{%for node in all_root_elems %} 
    {%include "tree_view_template.html" %}
{%endfor%}
</ul>

tree_view_template.html呈现nested ul,li并使用node模板变量,如下所示:

<li> {{node.name}}
    {%if node.has_childs %}
        <ul>
         {%for ch in node.all_childs %}
              {%with node=ch template_name="tree_view_template.html" %}
                   {%include template_name%}
              {%endwith%}
         {%endfor%}
         </ul>
    {%endif%}
</li>
Go 2022/1/1 18:22:05 有324人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶