summaryrefslogtreecommitdiff
path: root/django/db/models/sql
diff options
context:
space:
mode:
authorRamiro Morales <cramm0@gmail.com>2011-05-21 13:12:23 +0000
committerRamiro Morales <cramm0@gmail.com>2011-05-21 13:12:23 +0000
commit15793309e16dcdf5de17594eaef1962a7c35ce31 (patch)
treea4de2e08dec5c5e2bbe45616258de47022de6ca6 /django/db/models/sql
parent803a454aefaca780d0614a8053f3bfe8a76e6876 (diff)
Fixed #14476 -- Fixed resolution of automatically generated annotation names so e.g. filtering based on them works. Thanks dirleyls for the report and patch.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@16252 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django/db/models/sql')
-rw-r--r--django/db/models/sql/query.py16
1 files changed, 8 insertions, 8 deletions
diff --git a/django/db/models/sql/query.py b/django/db/models/sql/query.py
index 27c6859c61..99663b646b 100644
--- a/django/db/models/sql/query.py
+++ b/django/db/models/sql/query.py
@@ -1053,14 +1053,14 @@ class Query(object):
value = SQLEvaluator(value, self)
having_clause = value.contains_aggregate
- if parts[0] in self.aggregates:
- aggregate = self.aggregates[parts[0]]
- entry = self.where_class()
- entry.add((aggregate, lookup_type, value), AND)
- if negate:
- entry.negate()
- self.having.add(entry, connector)
- return
+ for alias, aggregate in self.aggregates.items():
+ if alias in (parts[0], LOOKUP_SEP.join(parts)):
+ entry = self.where_class()
+ entry.add((aggregate, lookup_type, value), AND)
+ if negate:
+ entry.negate()
+ self.having.add(entry, connector)
+ return
opts = self.get_meta()
alias = self.get_initial_alias()