Search code examples
pythondjangosumaggregatedjango-queryset

Django: Calculate the Sum of the column values through query


I have a model:

class ItemPrice(models.Model):
     price = models.DecimalField(max_digits=8, decimal_places=2)
     # ...

I tried this to calculate the sum of price in this queryset:

items = ItemPrice.objects.all().annotate(Sum('price'))

What's wrong in this query? or is there any other way to calculate the Sum of price column?

I know this can be done by using for loop on queryset but i need an elegant solution.

Thanks!


Solution

  • You're probably looking for aggregate

    from django.db.models import Sum
    
    ItemPrice.objects.aggregate(Sum('price'))
    # returns {'price__sum': 1000} for example