按照treebeard docs api示例,我使用get_annotated_list(parent=None, max_depth=None)
with parent=<my root node>创建了我的树的 annotated_list 。我将它传递给我的模板并使用他们在文档中归因于 Alexey Kinyov 的示例,我能够使用成功显示我的树
{% for item, info in annotated_list %}
{% if info.open %}
<ul><li>
{% else %}
</li><li>
{% endif %}
{{ item }}
{% for close in info.close %}
</li></ul>
{% endfor %}
{% endfor %}
我想要的是能够提供这些嵌套列表下拉功能。借鉴w3schools 上的这个标准示例,我对其进行了修改以使用我的annotated_list
模板变量并最终得到以下结果:
<ul id="myUL">
<li><span class="caret">{{ annotated_list.0.0 }}</span>
{% for item, info in annotated_list|slice:"1:" %}
{% if info.open %}
<ul class="nested"><li>
{% else %}
</li><li>{% if item.get_children_count > 0 %}<span class="caret">
{% endif %}
{% endif %}
{{ item }}
{% if item.get_children_count > 0 %}</span>
{% endif %}
{% for close in info.close %}
</li></ul>
{% endfor %}
{% endfor %}
</li>
</ul>
我的代码几乎可以工作,但似乎没有显示最左边节点的子节点,我不知道为什么。
注意:CSS 和 JS 不包括在内,但需要使下拉菜单工作(我只是使用 w3schools 示例中使用的开箱即用的 CSS/JS)