From f432bd3550443fb27711e463b086deae7c3096df Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Thu, 4 Sep 2008 21:26:49 +0000 Subject: - Fixed exception throw which would occur when string-based primaryjoin condition was used in conjunction with backref. --- lib/sqlalchemy/ext/declarative.py | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'lib') 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): -- cgit v1.2.1