python分层字典到html选项卡

2024-10-04 05:34:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在尝试从一个python字典中创建一个HTML表,该表的最终结果是堆栈排名

例如,一个经理可以有多个或一个所有者,每个所有者有多个或一个项目,每个项目都有一个符合性分数。基本上我想在第一栏写经理的名字,在第二栏写经理的所有人,然后在第三栏写合规的,在第四栏写不合规的。与数据透视表在excel中的外观非常相似

My view.py如下所示:

def ownerTable(request):
    managers = {}

    for m in Manager.objects.all():
        manager = m.login
        owners = {}
        for o in Owner.objects.filter(manager=m):
            projects = {}
            owner = o.login
            owners_compliant = 0
            owners_noncompliant = 0
            for p in DynamicProjectProperties.objects.filter(fieldValue=owner):
                project = p.project
                for pr in DynamicProjectProperties.objects.filter(project=project,fieldName='overall compliance'):
                    compliance = pr.overall_compliance
                    if compliance:
                        owners_compliant += 1
                    else:
                        owners_noncompliant += 1
            owners[owner] = owners_compliant,owners_noncompliant
        managers[manager] = owners
    print managers
    return render_to_response('managerView.html',{'managerDict':managers, 'ownersDict':owners})

我的mangerView.html如下所示:

<table>
<tr>
    <th id="managers"><strong>Managers</strong></th>
    <th id="owners"><strong>Project Owners</strong></th>
    <th id="noncompliant"><strong># of Non Compliant Projects</strong></th>
    <th id="compliant"><strong># of Compliant Projects</strong></th>
    <th id="total"><strong># of Projects</strong></th>
</tr>
{% for k,v in managerDict.items %}
<tr>
    <td header="managers">{{k}}</td>
    {% for attribute in v %}
        <td header="owners">{{attribute}}</td>
    {% endfor %}
</tr>
{% endfor %}
</table>

我的问题是,每个所有者都是跨行打印,而不是堆叠在一列中

敬请指点


Tags: inprojectidforobjectstr经理td
1条回答
网友
1楼 · 发布于 2024-10-04 05:34:26

我真的找到了解决办法!这是正确的

<table> <tr> <th id="managers"><strong>Managers</strong></th> <th id="owners"><strong>Project Owners</strong></th> <th id="noncompliant"><strong># of Non Compliant Projects</strong></th> <th id="compliant"><strong># of Compliant Projects</strong></th> <th id="total"><strong># of Projects</strong></th> </tr> {% for k,v in managerDict.items %} <tr> <td header="managers">{{k}}</td> {% for attribute in v.items %} <tr> <td></td> <td header="owners">{{attribute.0}}</td> <td>{{attribute.1.0}}</td> <td>{{attribute.1.1}}</td> </tr> {% endfor %} </tr> {% endfor %} </table>

相关问题 更多 >