Tengo una tabla como la siguiente: Tabla de ejemplo
y tengo un modelo como
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']ahora, cuando ejecuto el código, obtengo que todos los registros tienen hasta 37 en lugar de que tengan un total acumulado.
¿Dónde perdí un paso?
Cada vez que llama a total_hours obtiene la suma de horas sobre todos los objetos Hours. Necesitarías algo como:
Hours.objects.filter(id__lte=self.id).aggregate(total_hours=models.Sum('hours'))para un total acumulado