﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
11886	F() expressions don't retain parentheses into final SQL	Russell Keith-Magee	nobody	"Reported by Brent Hagany on django-users:

I'm having some trouble getting F() expressions to obey my parentheses
when I don't want the default order of operations.  For example, given
the model:
{{{
class MyModel(models.Model):
   wins = models.DecimalField(max_digits=1, decimal_places=0)
   losses = models.DecimalField(max_digits=1, decimal_places=0)
   win_percentage = models.DecimalField(max_digits=4, decimal_places=3, default=Decimal('0.000'))
}}}
I get the following results when trying to calculate the
win_percentage:
{{{
In [1]: MyModel.objects.create(wins=2, losses=4)
Out[1]: <MyModel: MyModel object>

In [2]: MyModel.objects.all().update(win_percentage=F('wins') / (F
('wins') + F('losses')))
Out[2]: 1

# I expect this to return Decimal(""0.333"")
In [3]: MyModel.objects.get(pk=1).win_percentage
Out[3]: Decimal(""5.000"")
}}}
It appears to be ignoring the parentheses around F('wins') + F
('losses'), and so instead of 2 / (2 + 4) = .333, I'm getting 2 / 2 +
4 = 5. 

"		closed	Uncategorized	1.1		fixed			Unreviewed	0	0	0	0	0	0
