summaryrefslogtreecommitdiff
path: root/django/db/models/sql
diff options
context:
space:
mode:
authorchenesan <pipio1994@gmail.com>2016-02-24 15:10:09 +0800
committerTim Graham <timograham@gmail.com>2016-02-27 08:48:32 -0500
commitb84f5ab4ec2d1edbe9a7effa9f75a3caa189bace (patch)
tree6e9d4ef21e0e33ea0100b18a5dc0c890391da8e5 /django/db/models/sql
parent5fb9756eba01237cc0e550da689b9b79c51c96ed (diff)
Fixed #26230 -- Made default_related_name affect related_query_name.
Diffstat (limited to 'django/db/models/sql')
-rw-r--r--django/db/models/sql/query.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/django/db/models/sql/query.py b/django/db/models/sql/query.py
index fb3529c2be..2f98ab895a 100644
--- a/django/db/models/sql/query.py
+++ b/django/db/models/sql/query.py
@@ -7,6 +7,7 @@ databases). The abstraction barrier only works one way: this module has to know
all about the internals of models in order to get the information it needs.
"""
import copy
+import warnings
from collections import Counter, Iterator, Mapping, OrderedDict
from itertools import chain, count, product
from string import ascii_uppercase
@@ -30,6 +31,7 @@ from django.db.models.sql.where import (
AND, OR, ExtraWhere, NothingNode, WhereNode,
)
from django.utils import six
+from django.utils.deprecation import RemovedInDjango20Warning
from django.utils.encoding import force_text
from django.utils.tree import Node
@@ -1288,6 +1290,19 @@ class Query(object):
except FieldDoesNotExist:
if name in self.annotation_select:
field = self.annotation_select[name].output_field
+ elif pos == 0:
+ for rel in opts.related_objects:
+ if (name == rel.related_model._meta.model_name and
+ rel.related_name == rel.related_model._meta.default_related_name):
+ related_name = rel.related_name
+ field = opts.get_field(related_name)
+ warnings.warn(
+ "Query lookup '%s' is deprecated in favor of "
+ "Meta.default_related_name '%s'."
+ % (name, related_name),
+ RemovedInDjango20Warning, 2
+ )
+ break
if field is not None:
# Fields that contain one-to-many relations with a generic