Как рассчитать doeking km, используя свойство в модели

Я застрял в проблеме, я хочу вычислить расстояние в км

где: doeking km mean, предположим 1 день автомобиль проезжает 10км, 2 день проезжает 20км и 3 день проезжает 50км в первый день это будет только 10, а во второй день это будет сумма 1 день(10)+2 второй день(20) = 30км и для 3-го путешествия 1 день+2 день+3 день = 80км.

вот моя модель ..

class Log(models.Model):
vehicle = models.ForeignKey(Vehicle, on_delete=models.CASCADE)
date_time = models.DateTimeField(
    default=timezone.now, blank=True, null=True)


@property
def doeking_km(self):
    res = Logsheet.objects.filter(log=self,log__date_time__range=[self.date_time, self.date_time + datetime.timedelta(days = 1)]).aggregate(Sum("daily_km")).get("daily_km__sum")

    return res

def __str__(self):
    return self.vehicle.vehicle_no + " " + str(self.date_time)

и ...

class Logsheet(models.Model):
log = models.ForeignKey(
    Log, on_delete=models.CASCADE, related_name="logsheets")
driver = models.ForeignKey(
    Driver, on_delete=models.CASCADE, blank=True, null=True)
trip = models.IntegerField(blank=False, null=False)
distance_from = models.FloatField(blank=True, null=True, )
distance_to = models.FloatField(blank=True, null=True, )
time_from = models.TimeField(blank=False, null=False, default=timezone.now)
time_to = models.TimeField(blank=False, null=False, default=timezone.now)
source = models.CharField(max_length=100, blank=True, null=True)
destination = models.CharField(max_length=100, blank=True, null=True)
daily_km = models.FloatField(blank=True, null=True, )

Чем ты!

Вернуться на верх