diff options
| author | Richard Mitchell <richard.j.mitchell@gmail.com> | 2012-11-27 14:03:42 +0000 |
|---|---|---|
| committer | Richard Mitchell <richard.j.mitchell@gmail.com> | 2012-11-27 14:03:42 +0000 |
| commit | 92535b4b575874a6c0f0392cab46300fe59107ee (patch) | |
| tree | 8fd90b842bdf7270005a8647b7b3137c522cef29 /lib/sqlalchemy/ext/declarative | |
| parent | e2697d547ec8c24c9a37a72fc60abe73b7dee81b (diff) | |
| download | sqlalchemy-92535b4b575874a6c0f0392cab46300fe59107ee.tar.gz | |
Allow use of synonyms in primaryjoin / secondaryjoin conditions
Diffstat (limited to 'lib/sqlalchemy/ext/declarative')
| -rw-r--r-- | lib/sqlalchemy/ext/declarative/clsregistry.py | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/sqlalchemy/ext/declarative/clsregistry.py b/lib/sqlalchemy/ext/declarative/clsregistry.py index a0e177f77..0ae10b25a 100644 --- a/lib/sqlalchemy/ext/declarative/clsregistry.py +++ b/lib/sqlalchemy/ext/declarative/clsregistry.py @@ -9,7 +9,8 @@ This system allows specification of classes and expressions used in :func:`.relationship` using strings. """ -from ...orm.properties import ColumnProperty, RelationshipProperty +from ...orm.properties import ColumnProperty, RelationshipProperty, \ + SynonymProperty from ...schema import _get_table_key from ...orm import class_mapper from ... import util @@ -195,7 +196,9 @@ class _GetColumns(object): % (self.cls, key)) prop = mp.get_property(key) - if not isinstance(prop, ColumnProperty): + if isinstance(prop, SynonymProperty): + key = prop.name + elif not isinstance(prop, ColumnProperty): raise exc.InvalidRequestError( "Property %r is not an instance of" " ColumnProperty (i.e. does not correspond" |
