Django

Code

Changeset 9207

Show
Ignore:
Timestamp:
10/08/08 04:48:21 (3 months ago)
Author:
mtredinnick
Message:

[1.0.X] 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.

Backport of r9206 from trunk.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/branches/releases/1.0.X/django/db/models/sql/query.py

    r9204 r9207  
    609609            ordering = self.extra_order_by 
    610610        elif not self.default_ordering: 
    611             ordering = [] 
     611            ordering = self.order_by 
    612612        else: 
    613613            ordering = self.order_by or self.model._meta.ordering 
  • django/branches/releases/1.0.X/tests/regressiontests/queries/models.py

    r9205 r9207  
    974974>>> print query.as_sql()[0] 
    975975SELECT U0."id" FROM "queries_tag" U0 
     976 
     977Calling order_by() with no parameters removes any existing ordering on the 
     978model. But it should still be possible to add new ordering after that. 
     979>>> qs = Author.objects.order_by().order_by('name') 
     980>>> 'ORDER BY' in qs.query.as_sql()[0] 
     981True 
    976982"""} 
    977983