diff options
| author | Marc Tamlyn <marc.tamlyn@gmail.com> | 2015-02-20 10:53:59 +0000 |
|---|---|---|
| committer | Marc Tamlyn <marc.tamlyn@gmail.com> | 2015-02-20 11:47:48 +0000 |
| commit | 3886338c1d6b79cdaf15c33459373185f8159dcd (patch) | |
| tree | 3300c0c635b45cf761228e48dea137cf89cb5fa9 /django/db/models/sql | |
| parent | c54d73ae01cd787315ba030da17e266c49f386b3 (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.py | 10 |
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) |
