Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1from decimal import Decimal 

2from django.db.models import QuerySet, Sum 

3 

4 

5def sum_queryset(qs: QuerySet, key: str = 'amount', default: Decimal = Decimal(0)) -> Decimal: 

6 """ 

7 Returns aggregate sum of queryset 'amount' field. 

8 :param qs: QuerySet 

9 :param key: Field to sum (default: 'amount') 

10 :param default: Default value if no results 

11 :return: Sum of 'amount' field values (coalesced 0 if None) 

12 """ 

13 res = qs.aggregate(b=Sum(key))['b'] 

14 return default if res is None else res