Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I multiply values in a query set in django correctly

I want to multiply two values in a queryset how do I achieve this: This is what I have :

def get_adjustment(self):
        Adjustment.objects.filter(employee_month_id=1,adjustment_type=2)
        .values('exchange_rate','amount').aggregate(Sum('amount', field="exchange_rate*amount") 
like image 556
Philip Mutua Avatar asked Dec 05 '25 04:12

Philip Mutua


2 Answers

You need to use F() objects.

.values('exchange_rate','amount').aggregate(Sum(F('amount') * F('exchange_rate')))

See the query expressions docs.

like image 105
Daniel Roseman Avatar answered Dec 07 '25 18:12

Daniel Roseman


obj = SomeModel.objects.filter(**something).extra(
    select = {'total': 'SUM(one_column * another_column)'},
)

Adjustment.objects.filter(employee_month_id=1,adjustment_type=2)
        .values('exchange_rate','amount').extra(select = {'total': 'SUM(exchange_rate * amount)'})
like image 35
Janardhan Reddy. Meeniga Avatar answered Dec 07 '25 19:12

Janardhan Reddy. Meeniga