这是Build directory tree from dropbox API
的后续内容我已经整理了我的字典,这就是我想要的方式。但现在我想写一个模板标签,将这个嵌套结构写成html,如:
array4
所有我能够想出的是一个递归生成器,它可以获取文件和目录,我可以将它们放在一个平面列表中,但我无法弄清楚如何获取嵌套工作,以及如何将html放在正确的位置。
<ul>
<li>
Dir/
<ul>
<li>
Dir2/
...
</li>
<li>Inner File</li>
</ul>
</li>
<li>File1</li>
<li>File2</li>
</ul>
模板标签:
def recurse(d):
for key, value in d.items():
if value['contents']:
for inner_key, inner_value in recurse(value['contents']):
yield inner_key, inner_value
else:
yield key, value
这让我获得了所有路径,但正如我所说,没有任何嵌套结构。
答案 0 :(得分:0)
您可以使用模板包括:
recurse_dict.html
{% if dict and dict.keys|length > 0 %}
<ul>
{% for key, value in dict.items %}
<li>
{% if value and value.keys|length > 0 %}
{{ key }} {% include "recurse_dict.html" with dict=value %}
{% else %}
{{ value }}
{% endif %}
</li>
{% endfor %}
</ul>
{% endif %}