summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2008-09-04 21:26:49 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2008-09-04 21:26:49 +0000
commitf432bd3550443fb27711e463b086deae7c3096df (patch)
treefe344c23a69385a347b256f3a6356e388b0e865a /lib
parentc586c0fe892510a853168391ccb5528516dc56da (diff)
downloadsqlalchemy-f432bd3550443fb27711e463b086deae7c3096df.tar.gz
- Fixed exception throw which would occur when string-based
primaryjoin condition was used in conjunction with backref.
Diffstat (limited to 'lib')
-rw-r--r--lib/sqlalchemy/ext/declarative.py6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/sqlalchemy/ext/declarative.py b/lib/sqlalchemy/ext/declarative.py
index 65af2da7a..85ccea648 100644
--- a/lib/sqlalchemy/ext/declarative.py
+++ b/lib/sqlalchemy/ext/declarative.py
@@ -374,6 +374,12 @@ def _deferred_relation(cls, prop):
if isinstance(v, basestring):
setattr(prop, attr, resolve_arg(v))
+ if prop.backref:
+ for attr in ('primaryjoin', 'secondaryjoin'):
+ if attr in prop.backref.kwargs and isinstance(prop.backref.kwargs[attr], basestring):
+ prop.backref.kwargs[attr] = resolve_arg(prop.backref.kwargs[attr])
+
+
return prop
def synonym_for(name, map_column=False):