Hi List, ok, i figured it out. My understanding of the documentation was a bit different. I really worked out this way. But
Thekey in the properties is the attribute name, that will be added to the parent object. So doing this orm.mapper(User, user_table, properties={ 'realms':relation(TokenRealm, backref=backref('user') ) ...will add an attribute User.realms. Kind regards Cornelius Am 26.01.2011 11:45, schrieb cornelinux: > Hi, > > I am just starting to use the relation between two tables. > The problem started with the child data not being written to the child > tables. > I played around, and now I am totally confused. > Maybe someone can shed some light on this. > > I got these tables: > > {{{ > user_table = sa.Table('User', meta.metadata, > sa.Column('UserId', sa.types.Integer(), > primary_key=True), > sa.Column('UserDesc', sa.types.UnicodeText(), > default=u''), > ) > > userrealm_table = sa.Table('UserRealm', meta.metadata, > sa.Column('id', sa.types.Integer(), primary_key=True), > sa.Column('user_id', > sa.types.Integer(),ForeignKey('User.UserId')), > sa.Column('realm_id', sa.types.Integer(), > nullable=False ) > ) > }}} > > I got the following classes: > > {{{ > class User(object): > def __init__(self, desc): > log.debug(' __init__(%s)' % desc) > self.UserDesc = serial > > classe UserRealm(object): > def __init__(self, realm): > log.debug("setting realm_id to %i" % realm) > self.realm_id = realm > }}} > > A user may belong to several realms. All the relation stuff should be > done in the mappers: > > {{{ > orm.mapper(UserRealm, userrealm_table) > orm.mapper(User, user_table, properties={ > 'children':relationship(UserRealm,backref='user', cascade="save- > update") > }) > }}} > > Now I am at the point, that the User object contains no attribute > identifying the realm... > I thought this attribute should be generated by the relation > definition? > > Any ideas on this? > > Kind regards > Cornelius >
signature.asc
Description: OpenPGP digital signature