diff options
| author | Russell Keith-Magee <russell@keith-magee.com> | 2010-04-23 14:25:29 +0000 |
|---|---|---|
| committer | Russell Keith-Magee <russell@keith-magee.com> | 2010-04-23 14:25:29 +0000 |
| commit | d9a0fd48ba1a4ac04c917099785d35700bef6ccc (patch) | |
| tree | d2b2769f840d17f1573050b6fe6734b3ad2dfa9a | |
| parent | 5866875547515bd8a1f7082404414602cf112355 (diff) | |
Fixed #11764 -- Added a missing set of parentheses in a call calculating 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
| -rw-r--r-- | django/db/models/sql/compiler.py | 8 | ||||
| -rw-r--r-- | tests/regressiontests/model_inheritance_regress/models.py | 7 |
2 files changed, 11 insertions, 4 deletions
diff --git a/django/db/models/sql/compiler.py b/django/db/models/sql/compiler.py index 8a24c62fe5..eaf2cd2569 100644 --- a/django/db/models/sql/compiler.py +++ b/django/db/models/sql/compiler.py @@ -546,8 +546,8 @@ class SQLCompiler(object): 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 @@ class SQLCompiler(object): 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( diff --git a/tests/regressiontests/model_inheritance_regress/models.py b/tests/regressiontests/model_inheritance_regress/models.py index c669b2337a..41895182f9 100644 --- a/tests/regressiontests/model_inheritance_regress/models.py +++ b/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 @@ True >>> 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. |
