Я пытаюсь создать таблицу в HTML из словаря python, который имеет конечный результат, который имеет рейтинг стека.python layered dictionary to html table
Например, у менеджера может быть много или один владелец, у каждого владельца есть много или один проект, и каждый проект имеет оценку соответствия. В основном я хочу, чтобы имя менеджера в первом столбце, все владельцы менеджера во втором столбце, а затем соответствовало трем, не соответствует четвертому. Очень похоже на то, как выглядит сводная таблица в Excel
Мой 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>
Моя проблема заключается в том, что каждый владелец печатает по каждой строке вместо укладки в столбец.
Любое руководство очень ценится!