From: Mike Bayer Date: Thu, 11 Dec 2008 15:34:45 +0000 (+0000) Subject: - fixed string-based "remote_side", "order_by" and X-Git-Tag: rel_0_5_0~119 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a44f9d1bfd31f1c5767dc1fd079e82acce5e7e2a;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git - fixed string-based "remote_side", "order_by" and others not propagating correctly when used in backref(). --- diff --git a/CHANGES b/CHANGES index cc60fec7af..63ad11cc53 100644 --- a/CHANGES +++ b/CHANGES @@ -245,6 +245,10 @@ CHANGES - Can now use a custom "inherit_condition" in __mapper_args__ when using declarative. + - fixed string-based "remote_side", "order_by" and + others not propagating correctly when used in + backref(). + 0.5.0rc3 ======== - features diff --git a/lib/sqlalchemy/ext/declarative.py b/lib/sqlalchemy/ext/declarative.py index a2bd517e45..70488eb077 100644 --- a/lib/sqlalchemy/ext/declarative.py +++ b/lib/sqlalchemy/ext/declarative.py @@ -434,7 +434,7 @@ def _deferred_relation(cls, prop): setattr(prop, attr, resolve_arg(v)) if prop.backref: - for attr in ('primaryjoin', 'secondaryjoin'): + 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/lib/sqlalchemy/orm/properties.py b/lib/sqlalchemy/orm/properties.py index 6404b8349e..87ad6819e3 100644 --- a/lib/sqlalchemy/orm/properties.py +++ b/lib/sqlalchemy/orm/properties.py @@ -805,7 +805,7 @@ class RelationProperty(StrategizedProperty): self.local_remote_pairs = eq_pairs elif self.remote_side: raise sa_exc.ArgumentError("remote_side argument is redundant against more detailed _local_remote_side argument.") - + for l, r in self.local_remote_pairs: if self.direction is ONETOMANY and not self._col_is_part_of_mappings(l):