Changeset 7445
- Timestamp:
- 04/23/08 04:26:14 (5 months ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/branches/queryset-refactor/django/db/models/sql/query.py
r7439 r7445 8 8 """ 9 9 10 import itertools11 10 from copy import deepcopy 12 11 … … 67 66 self.distinct = False 68 67 self.select_related = False 68 self.related_select_cols = [] 69 69 70 70 # Arbitrary maximum limit for select_related. Prevents infinite … … 151 151 obj.distinct = self.distinct 152 152 obj.select_related = self.select_related 153 obj.related_select_cols = [] 153 154 obj.max_depth = self.max_depth 154 155 obj.extra_select = self.extra_select.copy() … … 184 185 obj.clear_limits() 185 186 obj.select_related = False 187 obj.related_select_cols = [] 186 188 if obj.distinct and len(obj.select) > 1: 187 189 obj = self.clone(CountQuery, _query=obj, where=self.where_class(), … … 346 348 if not self.tables: 347 349 self.join((None, self.model._meta.db_table, None, None)) 348 if self.select_related :350 if self.select_related and not self.related_select_cols: 349 351 self.fill_related_selections() 350 352 … … 372 374 result.extend(cols) 373 375 aliases.extend(cols) 376 for table, col in self.related_select_cols: 377 r = '%s.%s' % (qn(table), qn(col)) 378 result.append(r) 379 aliases.append(r) 374 380 375 381 self._select_aliases = set(aliases) … … 770 776 opts = self.get_meta() 771 777 root_alias = self.get_initial_alias() 772 self. select.extend(self.get_default_columns())778 self.related_select_cols = [] 773 779 if not used: 774 780 used = set() … … 803 809 promote=f.null) 804 810 used.add(alias) 805 self. select.extend([(alias, f2.column)811 self.related_select_cols.extend([(alias, f2.column) 806 812 for f2 in f.rel.to._meta.fields]) 807 813 if restricted: … … 1279 1285 d = d.setdefault(part, {}) 1280 1286 self.select_related = field_dict 1287 self.related_select_cols = [] 1281 1288 1282 1289 def add_extra(self, select, select_params, where, params, tables, order_by):
