我有一个包含以下字段的模型:“日期”、“员工”和“计划时间”。每个员工对于不同的日期都有不同的计划工作时间。
我正在尝试构建我的模板,其中员工按行列出,他们的计划工作时间列在正确的相应日期下的列中。
像这样的东西 https://i.stack.imgur.com/pX2WK.png
到目前为止我的模板看起来像这样:
{% regroup emp3 by employee_name as emp9 %}
{% for employee_name in emp9 %}
<!--Job-->
<div class="table-row table-job-column employee-row"{{employee_name.grouper}}</div>
{% for x in employee_name.list %}
<div class="table-row table-fr-column">{{x.planned_hours}}</div>
{% endfor %}
{% endfor %}
My view:
def DesignHubR(request):
emp3_list = Projectsummaryplannedhours.objects.values_list('displayval', 'employeename').filter(businessunit='a').filter(billinggroup__startswith='PLS - Project').filter(Q(displayval=sunday2)|Q(displayval=sunday)).annotate(plannedhours__sum=Sum('plannedhours'))
emp3 = map(lambda x: {'date': x[0], 'employee_name': x[1], 'planned_hours': x[2]}, emp3_list)
context = {'sunday': sunday, 'sunday2': sunday2, 'emp3': emp3}
return render(request,'department_hub_ple.html', context)
我对当前结构的问题是它将第一个“计划时间”放在员工旁边。如果该日期没有计划时间,我需要能够插入空白列。我意识到我没有包含嵌套重组,但我尝试过的一切都不起作用。
注意:我将专栏日期拉到重组之外。
编辑以包括 EMP3_LIST:
[{'date': 'W/E 6/18/17', 'planned_hours': Decimal('45.00000'), 'employee_name': 'Bob'}, {'date': 'W/E 6/25/17', 'planned_hours': Decimal('45.00000'), 'employee_name': 'Bob'}, {'date': 'W/E 6/18/17', 'planned_hours': Decimal('17.00000'), 'employee_name': 'Jack'}, {'date': 'W/E 6/25/17', 'planned_hours': Decimal('13.00000'), 'employee_name': 'Jack'}, {'date': 'W/E 6/25/17', 'planned_hours': Decimal('1.00000'), 'employee_name': 'Stan'}, {'date': 'W/E 6/18/17', 'planned_hours': Decimal('27.00000'), 'employee_name': 'Albert'}, {'date': 'W/E 6/25/17', 'planned_hours': Decimal('29.00000'), 'employee_name': 'Albert'}]
Edit 2:
{% regroup emp3 by employee_name as emp9 %}
{% for employee_name in emp9 %}
<!--Job-->
<div class="table-row table-job-column employee-row">
{{employee_name.grouper}}</div>
{% regroup employee_name.list by date as date_list %}
{% for x in date_list %}
{% regroup x.list by planned_hours as plan_list %}
{% for y in plan_list %}
<div class="table-row table-fr-column">{{y.grouper}}</div>
{% endfor %}{% endfor %}