Как выполнять арифметические операции в шаблоне django
здесь у меня есть две модели Zone и DailyTask из которых я сделал шаблон, который выглядит как показано ниже
изображение
и теперь я хочу найти сумму использованной задачи, неиспользованных задач и общего количества задач каждого таймслота заранее спасибо
модель зоны
class Zone(models.Model):
name = models.CharField(max_length=200)
coordinates = models.TextField(null=True, blank=True)
модель DailyTask
class DailyTask(models.Model):
date = models.DateField()
zone = models.ForeignKey(Zone, on_delete=models.SET_NULL, null=True)
slot = models.ForeignKey(GeneralTimeSlot,related_name='daily_task', on_delete=models.CASCADE)
total_tasks = models.IntegerField(default=0)
used_tasks = models.IntegerField(default=0)
unused_tasks = models.IntegerField(default=0)
available_driver_slots = models.ManyToManyField(DriverTimeSlot)
и текущее выходное изображение
в последней трехстроке я хочу получить сумму над столбцами ??????
его мнение таково
class TimeSlotReportView(AdminOnlyMixin, generic.DetailView):
template_name = 'reports/time_slot_report.html'
def get(self, request, *args, **kwargs):
zones = Zone.objects.all()
# if request.is_ajax():
#
# date_val = request.GET.get('date_val')
# print(date_val)
# daily_task = DailyTask.objects.filter(date=date_val)
# html = render_to_string('tasks-zones/task-table-filter.html', {'daily_tasks': daily_task}, request)
# return JsonResponse({'html': html})
# no_of_drivers = Driver.objects.all().count()
today = datetime.date.today()
daily_task = DailyTask.objects.filter(date="2022-06-04")
used_tasks = DailyTask.objects.filter(date="2021-06-04").aggregate(Sum('used_tasks'))['used_tasks__sum']
print(used_tasks)
unused_tasks = DailyTask.objects.filter(date="2021-06-04").aggregate(Sum('unused_tasks'))['unused_tasks__sum']
print(unused_tasks)
# for zone in zones:
# daily_tasks = DailyTask.objects.filter(zone=zone, date__gte=today)
# for daily_task in daily_tasks:
# dr_slots = DriverTimeSlot.objects.filter(driver__zone=daily_task.zone,
# start_time=daily_task.slot.start_time)
# daily_task.total_tasks = dr_slots.count()
# daily_task.available_driver_slots.set(dr_slots)
# daily_task.save()
return render(request, self.template_name, {'zones': zones, 'daily_tasks': daily_task, 'total-used': used_tasks,
'total-unused': unused_tasks})