diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2006-03-06 02:27:13 +0000 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2006-03-06 02:27:13 +0000 |
| commit | a0079b6831aef2b604859f89f07772e65c04d5d4 (patch) | |
| tree | e70475a71ecc1cc198f8a7dd70f17fb081fb9727 /lib/sqlalchemy/mapping | |
| parent | 51acad4b5bf4ec5517d66e111d625ac0a0fd443e (diff) | |
| download | sqlalchemy-a0079b6831aef2b604859f89f07772e65c04d5d4.tar.gz | |
added new 'polymorphic' example. still trying to understand it :) .
fixes to relation to enable it to locate "direction" more consistently with inheritance relationships
more tweaks to parenthesizing subqueries, unions, etc.
Diffstat (limited to 'lib/sqlalchemy/mapping')
| -rw-r--r-- | lib/sqlalchemy/mapping/mapper.py | 1 | ||||
| -rw-r--r-- | lib/sqlalchemy/mapping/properties.py | 7 |
2 files changed, 4 insertions, 4 deletions
diff --git a/lib/sqlalchemy/mapping/mapper.py b/lib/sqlalchemy/mapping/mapper.py index 6a7eb9659..7b4595fb0 100644 --- a/lib/sqlalchemy/mapping/mapper.py +++ b/lib/sqlalchemy/mapping/mapper.py @@ -952,7 +952,6 @@ def object_mapper(object): def class_mapper(class_): """given a class, returns the primary Mapper associated with the class.""" - return mapper_registry[class_] try: return mapper_registry[class_] except KeyError: 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") |
