Django

Code

Changeset 9206

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

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.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/django/db/models/sql/query.py

    r9201 r9206  
    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/trunk/tests/regressiontests/queries/models.py

    r9202 r9206  
    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