summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/mapping/properties.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sqlalchemy/mapping/properties.py')
-rw-r--r--lib/sqlalchemy/mapping/properties.py7
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/sqlalchemy/mapping/properties.py b/lib/sqlalchemy/mapping/properties.py
index 023e44bf7..0f83568ed 100644
--- a/lib/sqlalchemy/mapping/properties.py
+++ b/lib/sqlalchemy/mapping/properties.py
@@ -229,7 +229,8 @@ class PropertyLoader(MapperProperty):
def _get_direction(self):
"""determines our 'direction', i.e. do we represent one to many, many to many, etc."""
-# print self.key, repr(self.parent.table.name), repr(self.parent.primarytable.name), repr(self.foreignkey.table.name)
+ #print self.key, repr(self.parent.table.name), repr(self.parent.primarytable.name), repr(self.foreignkey.table.name), repr(self.target), repr(self.foreigntable.name)
+
if self.parent.table is self.target:
if self.foreignkey.primary_key:
return PropertyLoader.MANYTOONE
@@ -237,9 +238,9 @@ class PropertyLoader(MapperProperty):
return PropertyLoader.ONETOMANY
elif self.secondaryjoin is not None:
return PropertyLoader.MANYTOMANY
- elif self.foreigntable == self.target:
+ elif self.foreigntable is self.target or self.foreigntable in self.mapper.tables:
return PropertyLoader.ONETOMANY
- elif self.foreigntable == self.parent.table:
+ elif self.foreigntable is self.parent.table or self.foreigntable in self.parent.tables:
return PropertyLoader.MANYTOONE
else:
raise ArgumentError("Cant determine relation direction")