Django - 如何将嵌套目录/文件树dict转换为html?

时间:2014-07-16 18:25:29

标签: django python-3.x

如何创建使用clas ='file'/ class ='folder'注释的嵌套html结构?

{
  'dir': {'subDir':[['file', size], ['file2', size],]}, # contents not a dict 

 'dir2': {'subDir':{'subDir': ['file', size],
                          0 : ['file', size]}}, # 0 not a directory
     0 : ['file', size]
}

相当于

dir
   subDir
         file
         file2
dir2
   subDir
         subDir
                file
         file
file

我很感激基于我的代码段的完整示例

我的dict的结构是我能想到的最简洁的方式将目录结构存储到db blob中,但是对于模板解压缩来说太多了,因为它不均匀

a single level structure would look like this
    [['file', size],
     ['file2', size2],
     ]

所以在模板中做一个简单的'for k,v in items'就不会飞

1 个答案:

答案 0 :(得分:0)

由于标签递归(您必须明确表示您将表示的最大级别数,通过嵌套该标签数量),您必须创建自己的标记或处理函数,以支持递归(仅在python代码中 - django模板本身不能递归)。

您是否尝试在模板内有条件地渲染模板?这可能是一种解决方法。

请参阅Include tag,它是执行某种递归的唯一方法(包括当前模板中的相同模板) - 否则您必须创建自己的-recursive-tag。