summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--django/db/models/sql/query.py7
-rw-r--r--tests/modeltests/select_related/models.py4
2 files changed, 9 insertions, 2 deletions
diff --git a/django/db/models/sql/query.py b/django/db/models/sql/query.py
index 9f303fa015..c1013ce99f 100644
--- a/django/db/models/sql/query.py
+++ b/django/db/models/sql/query.py
@@ -634,10 +634,13 @@ class Query(object):
self.rev_join_map[alias] = t_ident
return alias
- def fill_related_selections(self, opts=None, root_alias=None, cur_depth=0,
+ def fill_related_selections(self, opts=None, root_alias=None, cur_depth=1,
used=None):
"""
- Fill in the information needed for a select_related query.
+ Fill in the information needed for a select_related query. The current
+ "depth" is measured as the number of connections away from the root
+ model (cur_depth == 1 means we are looking at models with direct
+ connections to the root model).
"""
if self.max_depth and cur_depth > self.max_depth:
# We've recursed too deeply; bail out.
diff --git a/tests/modeltests/select_related/models.py b/tests/modeltests/select_related/models.py
index 78ba0ba764..a52cc986a4 100644
--- a/tests/modeltests/select_related/models.py
+++ b/tests/modeltests/select_related/models.py
@@ -147,6 +147,10 @@ __test__ = {'API_TESTS':"""
>>> len(db.connection.queries)
5
+>>> s = Species.objects.all().select_related(depth=1).extra(select={'a': 'select_related_species.id + 10'})[0]
+>>> s.id + 10 == s.a
+True
+
# Reset DEBUG to where we found it.
>>> settings.DEBUG = False
"""}