Skip to content

Commit 09ce0e0

Browse files
authored
fix: Fix unexpected ordering after values()/values_list() followed by order_by().
Refs #655 Refs #656
1 parent 285c855 commit 09ce0e0

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

modeltranslation/manager.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ def __init__(self, *args, **kwargs):
180180
def _post_init(self):
181181
self._rewrite = True
182182
self._populate = None
183-
if self.model and (not self.query.order_by):
183+
if self.model and self.query.default_ordering and (not self.query.order_by):
184184
if self.model._meta.ordering:
185185
# If we have default ordering specified on the model, set it now so that
186186
# it can be rewritten. Otherwise sql.compiler will grab it directly from _meta

modeltranslation/tests/tests.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2546,6 +2546,13 @@ def test_order_by_meta(self):
25462546
assert titles_for_en == ('most', 'more_en', 'more_de', 'least')
25472547
assert titles_for_de == ('most', 'more_de', 'more_en', 'least')
25482548

2549+
def test_order_by_reset(self):
2550+
qs = models.ManagerTestModel.objects.all()
2551+
assert qs.ordered
2552+
assert not qs.order_by().ordered
2553+
assert not qs.values('title').order_by().ordered
2554+
assert not qs.order_by().values('title').ordered, "queryset is unexpectedly ordered"
2555+
25492556
def test_latest(self):
25502557
manager = models.ManagerTestModel.objects
25512558
manager.create(title='more_de', visits_en=1, visits_de=2)

0 commit comments

Comments
 (0)