diff options
| -rw-r--r-- | django/db/models/query.py | 1 | ||||
| -rw-r--r-- | tests/modeltests/ordering/models.py | 7 |
2 files changed, 8 insertions, 0 deletions
diff --git a/django/db/models/query.py b/django/db/models/query.py index c36a68f404..6a6fd82b18 100644 --- a/django/db/models/query.py +++ b/django/db/models/query.py @@ -303,6 +303,7 @@ class _QuerySet(object): assert self.query.can_filter(), \ "Cannot reorder a query once a slice has been taken." obj = self._clone() + obj.query.clear_ordering() obj.query.add_ordering(*field_names) return obj diff --git a/tests/modeltests/ordering/models.py b/tests/modeltests/ordering/models.py index 3e651d4ee7..d3eb7f0dc0 100644 --- a/tests/modeltests/ordering/models.py +++ b/tests/modeltests/ordering/models.py @@ -64,4 +64,11 @@ __test__ = {'API_TESTS':""" # don't know what order the output will be in. >>> Article.objects.order_by('?') [...] + +# order_by() overrides any previous ordering, so only the last one has any +# effect. +>>> Article.objects.order_by('id') +[<Article: Article 1>, <Article: Article 2>, <Article: Article 3>, <Article: Article 4>] +>>> Article.objects.order_by('id').order_by('-headline') +[<Article: Article 4>, <Article: Article 3>, <Article: Article 2>, <Article: Article 1>] """} |
