summaryrefslogtreecommitdiff
path: root/django/db/models/sql
diff options
context:
space:
mode:
Diffstat (limited to 'django/db/models/sql')
-rw-r--r--django/db/models/sql/compiler.py16
-rw-r--r--django/db/models/sql/query.py14
2 files changed, 17 insertions, 13 deletions
diff --git a/django/db/models/sql/compiler.py b/django/db/models/sql/compiler.py
index d53b9d1c5d..6e5ed79a41 100644
--- a/django/db/models/sql/compiler.py
+++ b/django/db/models/sql/compiler.py
@@ -1,5 +1,6 @@
import collections
import re
+import warnings
from itertools import chain
from django.core.exceptions import EmptyResultSet, FieldError
@@ -12,6 +13,8 @@ from django.db.models.sql.constants import (
from django.db.models.sql.query import Query, get_order_dir
from django.db.transaction import TransactionManagementError
from django.db.utils import DatabaseError, NotSupportedError
+from django.utils.deprecation import RemovedInDjango30Warning
+from django.utils.inspect import func_supports_parameter
FORCE = object()
@@ -926,7 +929,18 @@ class SQLCompiler:
for pos, (convs, expression) in converters.items():
value = row[pos]
for converter in convs:
- value = converter(value, expression, self.connection, self.query.context)
+ if func_supports_parameter(converter, 'context'):
+ warnings.warn(
+ 'Remove the context parameter from %s.%s(). Support for it '
+ 'will be removed in Django 3.0.' % (
+ converter.__self__.__class__.__name__,
+ converter.__name__,
+ ),
+ RemovedInDjango30Warning,
+ )
+ value = converter(value, expression, self.connection, {})
+ else:
+ value = converter(value, expression, self.connection)
row[pos] = value
return tuple(row)
diff --git a/django/db/models/sql/query.py b/django/db/models/sql/query.py
index 70ea85a275..c335d77c3c 100644
--- a/django/db/models/sql/query.py
+++ b/django/db/models/sql/query.py
@@ -46,7 +46,7 @@ def get_field_names_from_opts(opts):
class RawQuery:
"""A single raw SQL query."""
- def __init__(self, sql, using, params=None, context=None):
+ def __init__(self, sql, using, params=None):
self.params = params or ()
self.sql = sql
self.using = using
@@ -57,10 +57,9 @@ class RawQuery:
self.low_mark, self.high_mark = 0, None # Used for offset/limit
self.extra_select = {}
self.annotation_select = {}
- self.context = context or {}
def clone(self, using):
- return RawQuery(self.sql, using, params=self.params, context=self.context.copy())
+ return RawQuery(self.sql, using, params=self.params)
def get_columns(self):
if self.cursor is None:
@@ -200,8 +199,6 @@ class Query:
# load.
self.deferred_loading = (frozenset(), True)
- self.context = {}
-
@property
def extra(self):
if self._extra is None:
@@ -334,15 +331,8 @@ class Query:
obj.__dict__.update(kwargs)
if hasattr(obj, '_setup_query'):
obj._setup_query()
- obj.context = self.context.copy()
return obj
- def add_context(self, key, value):
- self.context[key] = value
-
- def get_context(self, key, default=None):
- return self.context.get(key, default)
-
def relabeled_clone(self, change_map):
clone = self.clone()
clone.change_aliases(change_map)