Commit d9a0fd48 authored by Russell Keith-Magee's avatar Russell Keith-Magee
Browse files

Fixed #11764 -- Added a missing set of parentheses in a call calculating the...

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
parent 58668755
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -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(
+7 −0
Original line number Diff line number Diff line
@@ -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.