A queryset that has had ordering removed (order_by()) can have ordering added
again later (order_by('foo')). Or, at least, it can now. Thanks to Ilya Novoselov for diagnosing the problem here. git-svn-id: http://code.djangoproject.com/svn/django/trunk@9206 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
44f228fd61
commit
559aca7d78
|
@ -608,7 +608,7 @@ class Query(object):
|
||||||
if self.extra_order_by:
|
if self.extra_order_by:
|
||||||
ordering = self.extra_order_by
|
ordering = self.extra_order_by
|
||||||
elif not self.default_ordering:
|
elif not self.default_ordering:
|
||||||
ordering = []
|
ordering = self.order_by
|
||||||
else:
|
else:
|
||||||
ordering = self.order_by or self.model._meta.ordering
|
ordering = self.order_by or self.model._meta.ordering
|
||||||
qn = self.quote_name_unless_alias
|
qn = self.quote_name_unless_alias
|
||||||
|
|
|
@ -973,6 +973,12 @@ Make sure bump_prefix() (an internal Query method) doesn't (re-)break.
|
||||||
>>> query.bump_prefix()
|
>>> query.bump_prefix()
|
||||||
>>> print query.as_sql()[0]
|
>>> print query.as_sql()[0]
|
||||||
SELECT U0."id" FROM "queries_tag" U0
|
SELECT U0."id" FROM "queries_tag" U0
|
||||||
|
|
||||||
|
Calling order_by() with no parameters removes any existing ordering on the
|
||||||
|
model. But it should still be possible to add new ordering after that.
|
||||||
|
>>> qs = Author.objects.order_by().order_by('name')
|
||||||
|
>>> 'ORDER BY' in qs.query.as_sql()[0]
|
||||||
|
True
|
||||||
"""}
|
"""}
|
||||||
|
|
||||||
# In Python 2.3 and the Python 2.6 beta releases, exceptions raised in __len__
|
# In Python 2.3 and the Python 2.6 beta releases, exceptions raised in __len__
|
||||||
|
|
Loading…
Reference in New Issue