im glad people are finally using dynamic relations....try out rev 3869.
On Dec 7, 2007, at 10:25 AM, Vladimir Iliev wrote: > from sqlalchemy import * > from sqlalchemy.orm import * > > metadata = MetaData('sqlite://') > #~ metadata.bind.echo = 'debug' > > companies = Table('companies', metadata, > Column('company_id', Integer, primary_key=True), > Column('name', String(50))) > > employees_table = Table('employees', metadata, > Column('employee_id', Integer, primary_key=True), > Column('company_id', Integer, ForeignKey('companies.company_id')), > Column('name', String(50)), > ) > > metadata.create_all() > > class Person(object): > def __init__(self, **kwargs): > for key, value in kwargs.iteritems(): > setattr(self, key, value) > def __repr__(self): > return "Ordinary person %s" % self.name > class Company(object): > def __init__(self, **kwargs): > for key, value in kwargs.iteritems(): > setattr(self, key, value) > def __repr__(self): > return "Company %s" % self.name > > company_mapper = mapper(Company, companies) > > person_mapper = mapper(Person, employees_table, properties={ > 'company': relation(Company, backref=backref('employees', > lazy='dynamic')) > }) > > > session = create_session() > > c = Company(name='company1') > c.employees.append(Person(name='joesmith')) > session.save(c) > session.flush() > > session.clear() > > c = session.query(Company).get(1) > > print c.employees > print list(c.employees) > print c.employees.count() > > metadata.drop_all() --~--~---------~--~----~------------~-------~--~----~ 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 [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en -~----------~----~----~----~------~----~------~--~---