diff --git a/mongoengine/queryset.py b/mongoengine/queryset.py index e0c62132..3b37c3d7 100644 --- a/mongoengine/queryset.py +++ b/mongoengine/queryset.py @@ -939,6 +939,10 @@ class QuerySet(object): if key[0] in ('-', '+'): key = key[1:] key = key.replace('__', '.') + try: + key = QuerySet._translate_field_name(self._document, key) + except: + pass key_list.append((key, direction)) self._ordering = key_list diff --git a/tests/queryset.py b/tests/queryset.py index 6a87a1e6..48ce6272 100644 --- a/tests/queryset.py +++ b/tests/queryset.py @@ -1746,6 +1746,20 @@ class QuerySetTest(unittest.TestCase): Comment.drop_collection() Post.drop_collection() + def test_order_works_with_custom_db_field_names(self): + class Number(Document): + n = IntField(db_field='number') + + Number.drop_collection() + + n2 = Number.objects.create(n=2) + n1 = Number.objects.create(n=1) + + self.assertEqual(list(Number.objects), [n2,n1]) + self.assertEqual(list(Number.objects.order_by('n')), [n1,n2]) + + Number.drop_collection() + class QTest(unittest.TestCase):