Fixed hybrid property sorting

This commit is contained in:
Konsta Vesterinen
2013-09-17 16:50:09 +03:00
parent 06d35b2d74
commit bf1d0ad682
2 changed files with 11 additions and 1 deletions

View File

@@ -71,7 +71,9 @@ class QuerySorter(object):
# Check hybrid properties. # Check hybrid properties.
if hasattr(entity, sort['attr']): if hasattr(entity, sort['attr']):
return self.query.order_by(getattr(entity, sort['attr'])) return self.query.order_by(
sort['func'](getattr(entity, sort['attr']))
)
return self.query return self.query

View File

@@ -98,3 +98,11 @@ class TestSortQuery(TestCase):
query = self.session.query(self.Category) query = self.session.query(self.Category)
query = sort_query(query, 'articles_count') query = sort_query(query, 'articles_count')
assert 'ORDER BY (SELECT count(article.id) AS count_1' in str(query) assert 'ORDER BY (SELECT count(article.id) AS count_1' in str(query)
def test_sort_by_hybrid_property_descending(self):
query = self.session.query(self.Category)
query = sort_query(query, '-articles_count')
assert (
'ORDER BY (SELECT count(article.id) AS count_1'
) in str(query)
assert ' DESC' in str(query)