From: Mike Bayer Date: Tue, 17 Feb 2009 22:09:30 +0000 (+0000) Subject: - Declarative will properly interpret the "foreign_keys" argument X-Git-Tag: rel_0_5_3~26 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=38c9a5be50af93fe5ba4a9af4ecb594bb6ffff36;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git - Declarative will properly interpret the "foreign_keys" argument on a backref() if it's a string. --- diff --git a/CHANGES b/CHANGES index 7834d57826..629fd4f21b 100644 --- a/CHANGES +++ b/CHANGES @@ -91,6 +91,9 @@ CHANGES explicitly. Allows mixins to be used with joined table inheritance. + - Declarative will properly interpret the "foreign_keys" argument + on a backref() if it's a string. + 0.5.2 ====== diff --git a/lib/sqlalchemy/ext/declarative.py b/lib/sqlalchemy/ext/declarative.py index 0fec835ed5..f1b2e65fb5 100644 --- a/lib/sqlalchemy/ext/declarative.py +++ b/lib/sqlalchemy/ext/declarative.py @@ -605,7 +605,7 @@ def _deferred_relation(cls, prop): setattr(prop, attr, resolve_arg(v)) if prop.backref: - for attr in ('primaryjoin', 'secondaryjoin', 'secondary', '_foreign_keys', 'remote_side', 'order_by'): + 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]) diff --git a/test/ext/declarative.py b/test/ext/declarative.py index f6f1e6cfab..fb8190f2ed 100644 --- a/test/ext/declarative.py +++ b/test/ext/declarative.py @@ -117,7 +117,9 @@ class DeclarativeTest(DeclarativeTestBase): id = Column(Integer, primary_key=True) name = Column(String(50)) addresses = relation("Address", order_by="desc(Address.email)", - primaryjoin="User.id==Address.user_id", foreign_keys="[Address.user_id]") + primaryjoin="User.id==Address.user_id", foreign_keys="[Address.user_id]", + backref=backref('user', primaryjoin="User.id==Address.user_id", foreign_keys="[Address.user_id]") + ) class Address(Base, ComparableEntity): __tablename__ = 'addresses'