diff --git a/django/db/models/sql/compiler.py b/django/db/models/sql/compiler.py index fbb0152874..59b31dcb79 100644 --- a/django/db/models/sql/compiler.py +++ b/django/db/models/sql/compiler.py @@ -546,7 +546,7 @@ class SQLCompiler(object): result.append('%s%s%s' % (connector, qn(name), alias_str)) first = False for t in self.query.extra_tables: - alias, unused = self.query.table_alias(t) + alias, _ = self.query.table_alias(t) # Only add the alias if it's not already present (the table_alias() # calls increments the refcount, so an alias refcount of one means # this is the only reference. diff --git a/django/db/models/sql/query.py b/django/db/models/sql/query.py index 292322b9cb..ff86e8b45b 100644 --- a/django/db/models/sql/query.py +++ b/django/db/models/sql/query.py @@ -664,16 +664,16 @@ class Query(object): If 'create' is true, a new alias is always created. Otherwise, the most recently created alias for the table (if one exists) is reused. """ - current = self.table_map.get(table_name) - if not create and current: - alias = current[0] + alias_list = self.table_map.get(table_name) + if not create and alias_list: + alias = alias_list[0] self.alias_refcount[alias] += 1 return alias, False # Create a new alias for this table. - if current: + if alias_list: alias = '%s%d' % (self.alias_prefix, len(self.alias_map) + 1) - current.append(alias) + alias_list.append(alias) else: # The first occurrence of a table uses the table name directly. alias = table_name @@ -900,7 +900,7 @@ class Query(object): return alias # No reuse is possible, so we need a new alias. - alias, _ = self.table_alias(table, True) + alias, _ = self.table_alias(table, create=True) if not lhs: # Not all tables need to be joined to anything. No join type # means the later columns are ignored.