Fixed hybrid property sorting
This commit is contained in:
@@ -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
|
||||||
|
|
||||||
|
@@ -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)
|
||||||
|
Reference in New Issue
Block a user