Thanks Michael, thats just too cool!

On Jul 20, 10:35 pm, Michael Bayer <[EMAIL PROTECTED]> wrote:
> yup, just spell it out
>
> item_mapper = mapper(Item, item_table, properties=dict(
>         collections=relation(Item, secondary=collection_table ,lazy=True,  
> primaryjoin=item_table.c.id==collection_table.c.id_coll,
>         secondaryjoin=item_table.c.id==collection_table.c.id_item,
>         backref='items')))
>
> ...
>
> # do a more reasonable collection setup than the original test
>
> (koen, dirk) = session.query(Item).order_by(desc
> (item_table.c.name)).all()
>
> koen.collections.append(dirk)
> assert dirk in koen.collections
> assert koen in dirk.items
> session.flush()
> session.clear()
>
> (koen, dirk) = session.query(Item).order_by(desc
> (item_table.c.name)).all()
> assert dirk in koen.collections
> assert koen in dirk.items
>
> On Jul 20, 2007, at 4:00 PM, Koen Bok wrote:
>
> > from sqlalchemy import *
>
> > metadata = BoundMetaData('sqlite://')
>
> > class Item(object):
> >    def __init__(self, name):
> >            self.name = name
> >    def __repr__(self):
> >            return '<%s:%s>' % (self.__class__.__name__, self.name)
>
> > item_table = Table('item', metadata,
> >    Column('id', Integer, primary_key=True),
> >    Column('name', String(50)))
>
> > collection_table = Table('collection', metadata,
> >    Column('id_coll', Integer, ForeignKey("item.id"), nullable=False),
> >    Column('id_item', Integer, ForeignKey("item.id"), nullable=False))
>
> > item_mapper = mapper(Item, item_table, properties=dict(
> >    collections=relation(Item, secondary=collection_table ,lazy=True,
> > backref='items')))
>
> > metadata.create_all()
>
> > session = create_session()
>
> > session.save(Item('Koen Bok'))
> > session.save(Item('Dirk Stoop'))
>
> > session.flush()
>
> > # And now we should be able to do something like this:
>
> > items = session.query(Item).select()
>
> > for item in items:
> >    for i in items:
> >            item.items.append(i)
> >            item.collections.append(i)


--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to