diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-04-02 12:42:54 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-04-02 12:42:54 -0400 |
commit | a3a85ed54f0a3b99037b6ed25ac6c3c16d3b221c (patch) | |
tree | 2222713b9117ee87efab45f959a0b6305abb87f6 /lib/sqlalchemy/ext/declarative.py | |
parent | 3b7ef1b32dfd8e9d93ffd99f4c40a1d020b083d1 (diff) | |
download | sqlalchemy-a3a85ed54f0a3b99037b6ed25ac6c3c16d3b221c.tar.gz |
- Declarative will raise an informative error message
if a non-mapped class attribute is referenced in the
string-based relationship() arguments.
Diffstat (limited to 'lib/sqlalchemy/ext/declarative.py')
-rw-r--r-- | lib/sqlalchemy/ext/declarative.py | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/sqlalchemy/ext/declarative.py b/lib/sqlalchemy/ext/declarative.py index 1f4658b60..407de1004 100644 --- a/lib/sqlalchemy/ext/declarative.py +++ b/lib/sqlalchemy/ext/declarative.py @@ -749,8 +749,12 @@ class _GetColumns(object): mapper = class_mapper(self.cls, compile=False) if mapper: - prop = mapper.get_property(key) - if not isinstance(prop, ColumnProperty): + prop = mapper.get_property(key, raiseerr=False) + if prop is None: + raise exceptions.InvalidRequestError( + "Class %r does not have a mapped column named %r" + % (self.cls, key)) + elif not isinstance(prop, ColumnProperty): raise exceptions.InvalidRequestError( "Property %r is not an instance of" " ColumnProperty (i.e. does not correspond" |