嵌套for循环以显示分层数据

时间:2017-12-17 09:33:50

标签: django python-3.x

我需要在项目管理应用程序中显示非常简化的甘特图。为此,我在我的数据库中有里程碑,工作包和任务的层次结构。 如果我做了一个过于简化的数据结构

data = [    [ 'milestone',
                ['segment','segment'],
                    []
            ], 
            ['milestone',
                ['segment'],
                    ['task','task','task']
            ], 
            ['milestone',
                ['segment'],
                    []
            ] 
        ]

在我的模板中使用如下代码,显示正确。

<table class="table">
          <thead>
            <tr>
              <th></th>
              <th></th>
            </tr>
          </thead>
          <tbody>

            {% for x, y, z in data %}
                <tr >
                    <td style="color:red;">{{ x }}</td>
                </tr>
                {% for yy in y %}
                    <tr>
                        <td style="background-color: lightgrey; padding-left: 20px;">{{ yy }}</td>
                    </tr>
                    {% for zz in z %}
                        <tr>
                            <td style="background-color: grey; padding-left: 40px;">{{ zz }}</td>
                        </tr>
                    {% endfor %}
                {% endfor %}
            {% endfor %}
           </tbody>
      </table>

现在,如果我想获得包含更多工作包(段)总结任务的实际数据结构,则此解决方案不起作用。 看我的数据结构'方法'更现实

x_new = [   [ 'milestone',
                ['segment','segment'],
                    []
            ], 
            ['milestone',
                ['segment',
                    ['task','task','task'],
                 'segment',
                 'segment',
                    ['task']
                 ]
            ], 
            ['milestone',
                ['segment'],
                    []
            ] 
        ]

运行这个结构,我只是将任务层次结构显示为另一个段(声音逻辑)。 有没有人知道如何正确地做到这一点?

非常感谢

0 个答案:

没有答案