Changeset 7042
- Timestamp:
- 01/28/08 08:27:16 (7 months ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/branches/queryset-refactor/django/db/models/sql/query.py
r7031 r7042 89 89 self.quote_cache = {} 90 90 self.default_cols = True 91 self.default_ordering = True 91 92 92 93 # SQL-related attributes … … 156 157 obj.quote_cache = {} 157 158 obj.default_cols = self.default_cols 159 obj.default_ordering = self.default_ordering 158 160 obj.select = self.select[:] 159 161 obj.tables = self.tables[:] … … 460 462 if self.extra_order_by: 461 463 ordering = self.extra_order_by 462 elif self.order_by is None:464 elif not self.default_ordering: 463 465 ordering = [] 464 466 else: 465 # Note that self.order_by can be empty in two ways: [] ("use the466 # default"), which is handled here, and None ("no ordering"), which467 # is handled in the previous test.468 467 ordering = self.order_by or self.model._meta.ordering 469 468 qn = self.quote_name_unless_alias … … 984 983 possibly with a direction prefix ('-' or '?') -- or ordinals, 985 984 corresponding to column positions in the 'select' list. 985 986 If 'ordering' is empty, all ordering is cleared from the query. 986 987 """ 987 988 errors = [] … … 991 992 if errors: 992 993 raise TypeError('Invalid order_by arguments: %s' % errors) 993 self.order_by.extend(ordering) 994 if ordering: 995 self.order_by.extend(ordering) 996 else: 997 self.default_ordering = False 994 998 995 999 def clear_ordering(self, force_empty=False): … … 998 1002 no ordering in the resulting query (not even the model's default). 999 1003 """ 1004 self.order_by = [] 1005 self.extra_order_by = [] 1000 1006 if force_empty: 1001 self.order_by = None 1002 else: 1003 self.order_by = [] 1004 self.extra_order_by = [] 1007 self.default_ordering = False 1005 1008 1006 1009 def add_count_column(self): django/branches/queryset-refactor/docs/db-api.txt
r6899 r7042 533 533 534 534 ...since the ``Blog`` model has no default ordering specified. 535 536 **New in Django development version:** If you don't want any ordering to be 537 applied to a query, not even the default ordering, call ``order_by()`` with no 538 parameters. 535 539 536 540 **New in Django development version:** The syntax for ordering across related
