Skip to content

Commit

Permalink
fix: Fix unexpected ordering after values()/values_list() followe…
Browse files Browse the repository at this point in the history
…d by `order_by()`.

Refs #655
Refs #656
  • Loading branch information
mick88 committed Nov 7, 2022
1 parent 285c855 commit 09ce0e0
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 1 deletion.
2 changes: 1 addition & 1 deletion modeltranslation/manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,7 @@ def __init__(self, *args, **kwargs):
def _post_init(self):
self._rewrite = True
self._populate = None
if self.model and (not self.query.order_by):
if self.model and self.query.default_ordering and (not self.query.order_by):
if self.model._meta.ordering:
# If we have default ordering specified on the model, set it now so that
# it can be rewritten. Otherwise sql.compiler will grab it directly from _meta
Expand Down
7 changes: 7 additions & 0 deletions modeltranslation/tests/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -2546,6 +2546,13 @@ def test_order_by_meta(self):
assert titles_for_en == ('most', 'more_en', 'more_de', 'least')
assert titles_for_de == ('most', 'more_de', 'more_en', 'least')

def test_order_by_reset(self):
qs = models.ManagerTestModel.objects.all()
assert qs.ordered
assert not qs.order_by().ordered
assert not qs.values('title').order_by().ordered
assert not qs.order_by().values('title').ordered, "queryset is unexpectedly ordered"

def test_latest(self):
manager = models.ManagerTestModel.objects
manager.create(title='more_de', visits_en=1, visits_de=2)
Expand Down

0 comments on commit 09ce0e0

Please sign in to comment.