I'm trying to get a division between two annotate results in queryset. Impression is much larger than click, so I should get tenth decimal.
def get_queryset(self):
return googleData.objects.filter(account=self.account_name).\
values('date').\
annotate(Sum('click'), Sum('impression'), Sum('converted_click'),
Sum('conversion_value'), Sum('cost'), Sum('conversion_value'), ctr_monthly= Sum('click')/Sum('impression')).\
order_by('-date')
Trouble here:
ctr_monthly= Sum('click')/Sum('impression'))
In template i have:
<td>{{ googleData.ctr_monthly | floatformat:2}} </td>
And the result is 0.00. If I do ctr_final = click * impression, it generates correctly. Click & Impression are both integerfield.
I tried use the float(), gave me a syntax error.
The other question is: what's the best pratice to make a queryset like this? Is there any way that I can break it down to several short piece of code and make it more neat and readable ?
Thank you~