Author: jezdez Date: 2011-04-22 05:02:07 -0700 (Fri, 22 Apr 2011) New Revision: 16067
Modified: django/trunk/django/db/models/query.py django/trunk/tests/modeltests/get_latest/tests.py Log: Fixed #11283 -- Made sure that latest() clears previously specified ordering in a QuerySet. Thanks to benmoran, punteney, mk and and Julien Phalip. Modified: django/trunk/django/db/models/query.py =================================================================== --- django/trunk/django/db/models/query.py 2011-04-22 12:01:59 UTC (rev 16066) +++ django/trunk/django/db/models/query.py 2011-04-22 12:02:07 UTC (rev 16067) @@ -403,6 +403,7 @@ "Cannot change a query once a slice has been taken." obj = self._clone() obj.query.set_limits(high=1) + obj.query.clear_ordering() obj.query.add_ordering('-%s' % latest_by) return obj.get() Modified: django/trunk/tests/modeltests/get_latest/tests.py =================================================================== --- django/trunk/tests/modeltests/get_latest/tests.py 2011-04-22 12:01:59 UTC (rev 16066) +++ django/trunk/tests/modeltests/get_latest/tests.py 2011-04-22 12:02:07 UTC (rev 16067) @@ -43,6 +43,9 @@ a3, ) + # Ensure that latest() overrides any other ordering specified on the query. Refs #11283. + self.assertEqual(Article.objects.order_by('id').latest(), a4) + def test_latest_manual(self): # You can still use latest() with a model that doesn't have # "get_latest_by" set -- just pass in the field name manually. -- You received this message because you are subscribed to the Google Groups "Django updates" group. To post to this group, send email to django-updates@googlegroups.com. To unsubscribe from this group, send email to django-updates+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-updates?hl=en.