From 7ba40062d3a8b661feba22db94711a472c14a172 Mon Sep 17 00:00:00 2001 From: Ross Lawley Date: Wed, 18 May 2011 12:18:33 +0100 Subject: [PATCH] Fixes ordering with custom db field names Closes #125 --- mongoengine/queryset.py | 4 ++++ tests/queryset.py | 14 ++++++++++++++ 2 files changed, 18 insertions(+) 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):