I have a Django 1.9 queryset qs to which I add the following annotations:
qs = qs.annotate(total_messages=
Sum(Case(..., output_field=FloatField()))
qs = qs.annotate(spam_messages=
Sum(Case(..., output_field=FloatField()))
qs = qs.annotate(spam_rate=F('spam_messages')/F('total_messages'))
Weirdly, the results seem to be rounded downwards (like Math.floor), so that I get the following results (examples):
total_messages = 40.0, spam_messages = 24.0, spam_rate = 0.0
total_messages = 10.0, spam_messages = 10.0, spam_rate = 1.0
Also, it might be the case this behavior only occurred after upgrading from Django 1.7 to Django 1.9.
Am I doing something wrong or is that a bug?
Thanks in advance!