summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/ext/declarative.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2010-04-02 12:42:54 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2010-04-02 12:42:54 -0400
commita3a85ed54f0a3b99037b6ed25ac6c3c16d3b221c (patch)
tree2222713b9117ee87efab45f959a0b6305abb87f6 /lib/sqlalchemy/ext/declarative.py
parent3b7ef1b32dfd8e9d93ffd99f4c40a1d020b083d1 (diff)
downloadsqlalchemy-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.py8
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"