summaryrefslogtreecommitdiff
path: root/django/db/models/sql
diff options
context:
space:
mode:
authorMarc Tamlyn <marc.tamlyn@gmail.com>2015-02-20 10:53:59 +0000
committerMarc Tamlyn <marc.tamlyn@gmail.com>2015-02-20 11:47:48 +0000
commit3886338c1d6b79cdaf15c33459373185f8159dcd (patch)
tree3300c0c635b45cf761228e48dea137cf89cb5fa9 /django/db/models/sql
parentc54d73ae01cd787315ba030da17e266c49f386b3 (diff)
[1.8.x] Update converters to take a consistent set of parameters.
As suggested by Anssi. This has the slightly strange side effect of passing the expression to Expression.convert_value has the expression passed back to it, but it allows more complex patterns of expressions. Backport of 32d4db66b9 from master
Diffstat (limited to 'django/db/models/sql')
-rw-r--r--django/db/models/sql/compiler.py10
1 files changed, 4 insertions, 6 deletions
diff --git a/django/db/models/sql/compiler.py b/django/db/models/sql/compiler.py
index 5c1dcf4f05..136d066ec3 100644
--- a/django/db/models/sql/compiler.py
+++ b/django/db/models/sql/compiler.py
@@ -762,17 +762,15 @@ class SQLCompiler(object):
backend_converters = self.connection.ops.get_db_converters(expression)
field_converters = expression.get_db_converters(self.connection)
if backend_converters or field_converters:
- converters[i] = (backend_converters, field_converters, expression)
+ converters[i] = (backend_converters + field_converters, expression)
return converters
def apply_converters(self, row, converters):
row = list(row)
- for pos, (backend_converters, field_converters, field) in converters.items():
+ for pos, (convs, expression) in converters.items():
value = row[pos]
- for converter in backend_converters:
- value = converter(value, field, self.query.context)
- for converter in field_converters:
- value = converter(value, self.connection, self.query.context)
+ for converter in convs:
+ value = converter(value, expression, self.connection, self.query.context)
row[pos] = value
return tuple(row)