diff options
Diffstat (limited to 'lib/sqlalchemy/orm/relationships.py')
| -rw-r--r-- | lib/sqlalchemy/orm/relationships.py | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/sqlalchemy/orm/relationships.py b/lib/sqlalchemy/orm/relationships.py index 413397fda..adba2d542 100644 --- a/lib/sqlalchemy/orm/relationships.py +++ b/lib/sqlalchemy/orm/relationships.py @@ -328,7 +328,11 @@ class JoinCondition(object): _annotate_selfref(lambda col:"foreign" in col._annotations) else: def repl(element): - if self.child_selectable.c.contains_column(element): + if self.child_selectable.c.contains_column(element) and \ + ( + not self.parent_local_selectable.c.contains_column(element) + or self.child_local_selectable.c.contains_column(element) + ): return element._annotate({"remote":True}) self.primaryjoin = visitors.replacement_traverse( |
