Как выполнять арифметические операции в шаблоне 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)

и текущее выходное изображение

enter image description here

в последней трехстроке я хочу получить сумму над столбцами ??????

его мнение таково

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})
Вернуться на верх