diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2007-05-29 04:08:09 +0000 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2007-05-29 04:08:09 +0000 |
commit | 4e109aa21e4a61b39390803bd755b6497519f1cc (patch) | |
tree | 6cff3559381e1269ab5166bc9ce9f00e2592eb65 | |
parent | 18f7d1f02401e11df3a3e68a0eca1894c3cb2302 (diff) | |
download | sqlalchemy-4e109aa21e4a61b39390803bd755b6497519f1cc.tar.gz |
fix to the backref primary join condition
-rw-r--r-- | examples/poly_assoc/poly_assoc.py | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/examples/poly_assoc/poly_assoc.py b/examples/poly_assoc/poly_assoc.py index 53ef4d985..1a2eb2a75 100644 --- a/examples/poly_assoc/poly_assoc.py +++ b/examples/poly_assoc/poly_assoc.py @@ -24,7 +24,7 @@ the associated target object from those which associate with it. from sqlalchemy import * -metadata = BoundMetaData('sqlite://', echo=False) +metadata = BoundMetaData('sqlite://', echo=True) ####### # addresses table, class, 'addressable interface'. @@ -64,14 +64,17 @@ def addressable(cls, name, uselist=True): table = mapper.local_table cls.create_address = create_address # no constraints. therefore define constraints in an ad-hoc fashion. - primaryjoin = (list(table.primary_key)[0] == addresses.c.addressable_id) & (addresses.c.addressable_type == table.name) + primaryjoin = and_( + list(table.primary_key)[0] == addresses.c.addressable_id, + addresses.c.addressable_type == table.name + ) foreign_keys = [addresses.c.addressable_id] mapper.add_property(name, relation( - Address, - primaryjoin=primaryjoin, uselist=uselist, foreign_keys=foreign_keys, - backref=backref('_backref_%s' % table.name, primaryjoin=primaryjoin, foreign_keys=foreign_keys) + Address, + primaryjoin=primaryjoin, uselist=uselist, foreign_keys=foreign_keys, + backref=backref('_backref_%s' % table.name, primaryjoin=list(table.primary_key)[0] == addresses.c.addressable_id, foreign_keys=foreign_keys) ) - ) + ) mapper(Address, addresses) @@ -80,7 +83,8 @@ mapper(Address, addresses) users = Table("users", metadata, Column('id', Integer, primary_key=True), - Column('name', String(50), nullable=False)) + Column('name', String(50), nullable=False) + ) class User(object): pass |