try : m = mapper(MyJoin, a_table.join(b_table), properties={ 'a_id' : [Table_a.__table__.c.id, Table_b.__table__.c.a_id] })
from: http://www.sqlalchemy.org/docs/05/mappers.html#mapping-a-class-against-multiple-tables On May 5, 11:46 am, Alessandro Dentella <san...@e-den.it> wrote: > Hi, > > how should I configure a mapper that represents a join between two tables > so that inserting a new object writes the foreign key between the two in > the proper way? > > class Table_a(Base): > __tablename__ = 'a' > id = Column(Integer, primary_key=True) > description = Column(String(100)) > > class Table_b(Base): > __tablename__ = 'b' > > idb = Column(Integer, primary_key=True) > a_id = Column(ForeignKey(Table_a.id), nullable=False) > > a_table = Table_a.__table__ > b_table = Table_b.__table__ > > class MyJoin(object): pass > > m = mapper(MyJoin, a_table.join(b_table)) > > j = MyJoin() > j.description = 'xxx' > > sess.add(j) > > Base.metadata.bind.echo = True > sess.commit() > > 2009-05-05 12:41:52,346 INFO sqlalchemy.engine.base.Engine.0x...7acL BEGIN > 2009-05-05 12:41:52,347 INFO sqlalchemy.engine.base.Engine.0x...7acL INSERT > INTO a (description) VALUES (?) > 2009-05-05 12:41:52,347 INFO sqlalchemy.engine.base.Engine.0x...7acL ['xxx'] > 2009-05-05 12:41:52,348 INFO sqlalchemy.engine.base.Engine.0x...7acL INSERT > INTO b (a_id) VALUES (?) > 2009-05-05 12:41:52,348 INFO sqlalchemy.engine.base.Engine.0x...7acL [None] > 2009-05-05 12:41:52,348 INFO sqlalchemy.engine.base.Engine.0x...7acL ROLLBACK > > Is it possible to prepare the mapper so that a_id gets the value that > the first object got as id? > > thanks > sandro > *:-) --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalchemy@googlegroups.com To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en -~----------~----~----~----~------~----~------~--~---