Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Fixed #11764 -- Added a missing set of parentheses in a call calculat…

…ing the select_related tables. Thanks to aurelio for the report and original patch, and wogan for the updated patch.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@13019 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information...
commit d9a0fd48ba1a4ac04c917099785d35700bef6ccc 1 parent 5866875
@freakboy3742 freakboy3742 authored
View
8 django/db/models/sql/compiler.py
@@ -546,8 +546,8 @@ def fill_related_selections(self, opts=None, root_alias=None, cur_depth=1,
lhs_col = int_opts.parents[int_model].column
dedupe = lhs_col in opts.duplicate_targets
if dedupe:
- avoid.update(self.query.dupe_avoidance.get(id(opts), lhs_col),
- ())
+ avoid.update(self.query.dupe_avoidance.get((id(opts), lhs_col),
+ ()))
dupe_set.add((opts, lhs_col))
int_opts = int_model._meta
alias = self.query.join((alias, int_opts.db_table, lhs_col,
@@ -620,8 +620,8 @@ def fill_related_selections(self, opts=None, root_alias=None, cur_depth=1,
lhs_col = int_opts.parents[int_model].column
dedupe = lhs_col in opts.duplicate_targets
if dedupe:
- avoid.update(self.query.dupe_avoidance.get(id(opts), lhs_col),
- ())
+ avoid.update((self.query.dupe_avoidance.get(id(opts), lhs_col),
+ ()))
dupe_set.add((opts, lhs_col))
int_opts = int_model._meta
alias = self.query.join(
View
7 tests/regressiontests/model_inheritance_regress/models.py
@@ -56,6 +56,9 @@ class ParkingLot3(Place):
class Supplier(models.Model):
restaurant = models.ForeignKey(Restaurant)
+class Wholesaler(Supplier):
+ retailer = models.ForeignKey(Supplier,related_name='wholesale_supplier')
+
class Parent(models.Model):
created = models.DateTimeField(default=datetime.datetime.now)
@@ -268,6 +271,10 @@ class MessyBachelorParty(BachelorParty):
>>> Supplier.objects.filter(restaurant=Restaurant(name='xx', address='yy'))
[]
+# Regression test for #11764.
+>>> for w in Wholesaler.objects.all().select_related():
+... print w
+
# Regression test for #7853
# If the parent class has a self-referential link, make sure that any updates
# to that link via the child update the right table.
Please sign in to comment.
Something went wrong with that request. Please try again.