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