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
This commit is contained in:
parent
5866875547
commit
d9a0fd48ba
|
@ -546,8 +546,8 @@ class SQLCompiler(object):
|
||||||
lhs_col = int_opts.parents[int_model].column
|
lhs_col = int_opts.parents[int_model].column
|
||||||
dedupe = lhs_col in opts.duplicate_targets
|
dedupe = lhs_col in opts.duplicate_targets
|
||||||
if dedupe:
|
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))
|
dupe_set.add((opts, lhs_col))
|
||||||
int_opts = int_model._meta
|
int_opts = int_model._meta
|
||||||
alias = self.query.join((alias, int_opts.db_table, lhs_col,
|
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
|
lhs_col = int_opts.parents[int_model].column
|
||||||
dedupe = lhs_col in opts.duplicate_targets
|
dedupe = lhs_col in opts.duplicate_targets
|
||||||
if dedupe:
|
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))
|
dupe_set.add((opts, lhs_col))
|
||||||
int_opts = int_model._meta
|
int_opts = int_model._meta
|
||||||
alias = self.query.join(
|
alias = self.query.join(
|
||||||
|
|
|
@ -56,6 +56,9 @@ class ParkingLot3(Place):
|
||||||
class Supplier(models.Model):
|
class Supplier(models.Model):
|
||||||
restaurant = models.ForeignKey(Restaurant)
|
restaurant = models.ForeignKey(Restaurant)
|
||||||
|
|
||||||
|
class Wholesaler(Supplier):
|
||||||
|
retailer = models.ForeignKey(Supplier,related_name='wholesale_supplier')
|
||||||
|
|
||||||
class Parent(models.Model):
|
class Parent(models.Model):
|
||||||
created = models.DateTimeField(default=datetime.datetime.now)
|
created = models.DateTimeField(default=datetime.datetime.now)
|
||||||
|
|
||||||
|
@ -268,6 +271,10 @@ True
|
||||||
>>> Supplier.objects.filter(restaurant=Restaurant(name='xx', address='yy'))
|
>>> 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
|
# Regression test for #7853
|
||||||
# If the parent class has a self-referential link, make sure that any updates
|
# If the parent class has a self-referential link, make sure that any updates
|
||||||
# to that link via the child update the right table.
|
# to that link via the child update the right table.
|
||||||
|
|
Loading…
Reference in New Issue