Инкрементные итоги в Django Model
У меня есть таблица следующего вида: Пример таблицы
и у меня есть модель как
class Hours(models.Model):
name = model.Charfield(max_length =200)
hours = DecimalField(max_digits = 6, decimal_places=2)
def total_hours(self):
queryset = Hours.objects.aggregate(total_hours=models.Sum('hours'))
return queryset['total_hours']
теперь, когда я запускаю код, я получаю, что все записи имеют значение 37, вместо того, чтобы они имели текущий итог.
где я пропустил шаг?
Когда вы вызываете total_hours, то получаете сумму часов по всем объектам Hours. Вам нужно что-то вроде:
Hours.objects.filter(id__lte=self.id).aggregate(total_hours=models.Sum('hours'))
для текущего итога