我一直在尝试从一个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>
我的问题是,每个所有者都是跨行打印,而不是堆叠在一列中
敬请指点
我真的找到了解决办法!这是正确的
<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>
;相关问题 更多 >
编程相关推荐