我想问您如何将数据从视图传递到模板。我有员工,中心,班次和名为Scheduler的模型:
class Scheduler(models.Model):
year = models.IntegerField(null=True)
month = models.IntegerField(null=True)
day = models.IntegerField(null=True)
center = models.ForeignKey('PPHCenter.Center', on_delete=models.CASCADE)
shift = models.ForeignKey('PPHShift.Shift', on_delete=models.CASCADE)
employee = models.ForeignKey('PPHEmployee.Employee', on_delete=models.CASCADE, null=True)
我的视图如下:
def month_view(request, year, month, center):
center = get_object_or_404(Center, pk=center)
employees = Employee.objects.filter(centers=center.id)
shifts = Shift.objects.filter(center=center)
year, month = int(year), int(month)
cal = calendar.monthcalendar(year, month)
dtstart = datetime(year, month, 1)
last_day = max(cal[-1])
dtend = datetime(year, month, last_day)
corrected_last_day = last_day+1
context = {
'center': center,
'employees': employees,
'shifts': shifts,
'dtstart': dtstart,
'dtend': dtend,
'last_day': range(1, corrected_last_day),
'year': year,
'month': month,
}
return render(request, 'scheduler/month_view.html', context)
我的模板如下所示:
<div class="container-fluid">
CENTER: {{ center.name }} <br/>
<div class="table-responsive">
<table class="table">
<thead>
<tr>
<th>Name/Day</th>
{% for i in last_day %}
<th>{{ i }}</th>
{% endfor %}
</tr>
</thead>
<tbody>
{% for e in employees %}
<tr>
<td>{{ e.name }} {{ e.last_name }}</td>
{% for i in last_day %}
<td><input name="{{ i }}" type="text" size="2" center="{{ center.id }}" employee="{{ e.id }}" year="{{ year }}" month="{{ month }}" day="{{ i }}"/></td>
{% endfor %}
</tr>
{% endfor %}
</tbody>
</table>
</div>
因此,我有一个表来显示某个中心的员工,我有基于月内天数的输入,并且我想将Scheduler中的数据显示为正确的输入值。如果我具有“ month_employee_data(year,month,center,employee)”功能,并且可以从模板调用它并填充for循环中的数据,那将是非常容易的。
谢谢您的帮助。
Filip