summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorDavid Wobrock <david.wobrock@gmail.com>2023-04-18 10:20:32 +0200
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2023-04-18 12:46:27 +0200
commit8b1ff0da4b162e87edebd94e61f2cd153e9e159d (patch)
tree537798f33a0a9458ea1c4728616ba207b3a44dac /django
parent9bbf97bcdb488bb11aebb5bd405549fbec6852cd (diff)
downloaddjango-8b1ff0da4b162e87edebd94e61f2cd153e9e159d.tar.gz
Refs #16055 -- Deprecated get_joining_columns()/get_reverse_joining_columns() methods.
Diffstat (limited to 'django')
-rw-r--r--django/db/models/fields/related.py12
-rw-r--r--django/db/models/fields/reverse_related.py7
-rw-r--r--django/db/models/sql/datastructures.py12
3 files changed, 31 insertions, 0 deletions
diff --git a/django/db/models/fields/related.py b/django/db/models/fields/related.py
index 7a49861164..2c0527d2b7 100644
--- a/django/db/models/fields/related.py
+++ b/django/db/models/fields/related.py
@@ -1,5 +1,6 @@
import functools
import inspect
+import warnings
from functools import partial
from django import forms
@@ -13,6 +14,7 @@ from django.db.models.constants import LOOKUP_SEP
from django.db.models.deletion import CASCADE, SET_DEFAULT, SET_NULL
from django.db.models.query_utils import PathInfo
from django.db.models.utils import make_model_tuple
+from django.utils.deprecation import RemovedInDjango60Warning
from django.utils.functional import cached_property
from django.utils.translation import gettext_lazy as _
@@ -777,12 +779,22 @@ class ForeignObject(RelatedField):
return attname, None
def get_joining_columns(self, reverse_join=False):
+ warnings.warn(
+ "ForeignObject.get_joining_columns() is deprecated. Use "
+ "get_joining_fields() instead.",
+ RemovedInDjango60Warning,
+ )
source = self.reverse_related_fields if reverse_join else self.related_fields
return tuple(
(lhs_field.column, rhs_field.column) for lhs_field, rhs_field in source
)
def get_reverse_joining_columns(self):
+ warnings.warn(
+ "ForeignObject.get_reverse_joining_columns() is deprecated. Use "
+ "get_reverse_joining_fields() instead.",
+ RemovedInDjango60Warning,
+ )
return self.get_joining_columns(reverse_join=True)
def get_joining_fields(self, reverse_join=False):
diff --git a/django/db/models/fields/reverse_related.py b/django/db/models/fields/reverse_related.py
index f3da8f8bf2..c74e92ba89 100644
--- a/django/db/models/fields/reverse_related.py
+++ b/django/db/models/fields/reverse_related.py
@@ -8,8 +8,10 @@ in the ``remote_field`` attribute of the field.
They also act as reverse fields for the purposes of the Meta API because
they're the closest concept currently available.
"""
+import warnings
from django.core import exceptions
+from django.utils.deprecation import RemovedInDjango60Warning
from django.utils.functional import cached_property
from django.utils.hashable import make_hashable
@@ -193,6 +195,11 @@ class ForeignObjectRel(FieldCacheMixin):
return bool(self.related_name) and self.related_name[-1] == "+"
def get_joining_columns(self):
+ warnings.warn(
+ "ForeignObjectRel.get_joining_columns() is deprecated. Use "
+ "get_joining_fields() instead.",
+ RemovedInDjango60Warning,
+ )
return self.field.get_reverse_joining_columns()
def get_joining_fields(self):
diff --git a/django/db/models/sql/datastructures.py b/django/db/models/sql/datastructures.py
index 46a977188a..dadd7c063d 100644
--- a/django/db/models/sql/datastructures.py
+++ b/django/db/models/sql/datastructures.py
@@ -2,8 +2,11 @@
Useful auxiliary data structures for query construction. Not useful outside
the SQL domain.
"""
+import warnings
+
from django.core.exceptions import FullResultSet
from django.db.models.sql.constants import INNER, LOUTER
+from django.utils.deprecation import RemovedInDjango60Warning
class MultiJoin(Exception):
@@ -68,6 +71,11 @@ class Join:
for lhs_field, rhs_field in self.join_fields
)
else:
+ warnings.warn(
+ "The usage of get_joining_columns() in Join is deprecated. Implement "
+ "get_joining_fields() instead.",
+ RemovedInDjango60Warning,
+ )
self.join_fields = None
self.join_cols = join_field.get_joining_columns()
# Along which field (or ForeignObjectRel in the reverse join case)
@@ -87,9 +95,13 @@ class Join:
qn = compiler.quote_name_unless_alias
qn2 = connection.ops.quote_name
# Add a join condition for each pair of joining columns.
+ # RemovedInDjango60Warning: when the depraction ends, replace with:
+ # for lhs, rhs in self.join_field:
join_fields = self.join_fields or self.join_cols
for lhs, rhs in join_fields:
if isinstance(lhs, str):
+ # RemovedInDjango60Warning: when the depraction ends, remove
+ # the branch for strings.
lhs_full_name = "%s.%s" % (qn(self.parent_alias), qn2(lhs))
rhs_full_name = "%s.%s" % (qn(self.table_alias), qn2(rhs))
else: