diff options
Diffstat (limited to 'lib/sqlalchemy/ext/declarative.py')
| -rw-r--r-- | lib/sqlalchemy/ext/declarative.py | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/sqlalchemy/ext/declarative.py b/lib/sqlalchemy/ext/declarative.py index 3d8596e05..5d712df0f 100644 --- a/lib/sqlalchemy/ext/declarative.py +++ b/lib/sqlalchemy/ext/declarative.py @@ -630,10 +630,11 @@ def _deferred_relation(cls, prop): if isinstance(v, basestring): setattr(prop, attr, resolve_arg(v)) - if prop.backref: + if prop.backref and isinstance(prop.backref, tuple): + key, kwargs = prop.backref for attr in ('primaryjoin', 'secondaryjoin', 'secondary', 'foreign_keys', 'remote_side', 'order_by'): - if attr in prop.backref.kwargs and isinstance(prop.backref.kwargs[attr], basestring): - prop.backref.kwargs[attr] = resolve_arg(prop.backref.kwargs[attr]) + if attr in kwargs and isinstance(kwargs[attr], basestring): + kwargs[attr] = resolve_arg(kwargs[attr]) return prop |
