Add support for synonyms in sort_query

This commit is contained in:
Konsta Vesterinen
2014-07-31 10:14:44 +03:00
parent 2614d388ae
commit 15a1036264
5 changed files with 7 additions and 4 deletions

View File

@@ -8,6 +8,7 @@ Here you can see the full list of changes between each SQLAlchemy-Utils release.
^^^^^^^^^^^^^^^^^^^
- Fixed order by column property handling in sort_query when using polymorphic inheritance
- Added support for synonym properties in sort_query
0.26.7 (2014-07-29)

View File

@@ -44,7 +44,7 @@ for name, requirements in extras_require.items():
setup(
name='SQLAlchemy-Utils',
version='0.26.7',
version='0.26.8',
url='https://github.com/kvesteri/sqlalchemy-utils',
license='BSD',
author='Konsta Vesterinen, Ryan Leckey, Janne Vanhala, Vesa Uimonen',

View File

@@ -74,7 +74,7 @@ from .types import (
from .models import Timestamp
__version__ = '0.26.7'
__version__ = '0.26.8'
__all__ = (

View File

@@ -1,5 +1,5 @@
import sqlalchemy as sa
from sqlalchemy.orm.properties import ColumnProperty
from sqlalchemy.orm.properties import ColumnProperty, SynonymProperty
from sqlalchemy.sql.expression import desc, asc, Label
from sqlalchemy.orm.util import AliasedInsp
from .orm import (
@@ -49,6 +49,8 @@ class QuerySorter(object):
return getattr(entity, property_.key)
else:
return get_expr_attr(entity, property_.key)
elif isinstance(property_, SynonymProperty):
return get_expr_attr(entity, property_.key)
return
mapper = sa.inspect(entity)

View File

@@ -129,7 +129,7 @@ class TestSortQuery(TestCase):
def test_synonym_property(self):
query = self.session.query(self.Category)
query = sort_query(query, 'name_synonym')
assert_contains('ORDER BY name DESC', query)
assert_contains('ORDER BY category.name ASC', query)
def test_hybrid_property(self):
query = self.session.query(self.Category)