steve - thanks for the info. this should be the last of the compilation bugs, fixed in rev 1686 .
- mike On Jul 5, 2006, at 4:02 PM, Steve Zatz wrote: >> so let me see what your mapper setup looks like. > > mapper(Item, item_table, properties = dict(keywords = > relation(Keyword, secondary=itemkeyword_table), reminder = > relation(Reminder, backref='item'),)) > mapper(Section, section_table, properties = {'items': relation(Item, > backref='section'), 'keywords': relation(Keyword, backref='section')}) > mapper(Keyword, keyword_table, properties = dict(items = > relation(Item, secondary=itemkeyword_table),)) > mapper(Reminder, reminder_table) > > First of all sorry about the wrong error message, as you can see below > that's the error message that occurs when I try to do reminder.item, > which also was failing. > > I hope the following helps: > > The relationship between Reminder and item does not appear to be > defined until I do the > following query: > >>>> items = session.query(Item).select >>>> (Item.c.uuid==Reminder.c.item_uuid) > > after doing that things like reminder.item > > and > > session.query(Reminder).options(eagerload('item')) > > work fine. The details are below: > > ---------------------------------------------------------------------- > --------------------------------------------------- > > C:\home\slzatz\listmanager>python > Python 2.4.2 (#67, Sep 28 2005, 12:41:11) [MSC v.1310 32 bit > (Intel)] on win32 > Type "help", "copyright", "credits" or "license" for more information. > ... >>>> query = session.query(Reminder).options(eagerload('item')) > Traceback (most recent call last): > File "<stdin>", line 1, in ? > File "C:\home\slzatz\listmanager\sqlalchemy\orm\query.py", line 244, > in options > return self.mapper.options(*args, **kwargs).using > (session=self._session) > File "C:\home\slzatz\listmanager\sqlalchemy\orm\mapper.py", line > 717, in options > option.process(mapper) > File "C:\home\slzatz\listmanager\sqlalchemy\orm\properties.py", line > 644, in process > self.process_by_key(mapper, self.key) > File "C:\home\slzatz\listmanager\sqlalchemy\orm\properties.py", line > 653, in process_by_key > self.create_prop(mapper, tokens[0]) > File "C:\home\slzatz\listmanager\sqlalchemy\orm\properties.py", line > 726, in create_prop > oldprop = mapper.props[key] > KeyError: 'item' >>>> reminders = session.query(Reminder).select() > [2006-07-05 15:44:22,677] [engine]: SELECT reminder.rtime AS > reminder_rtime, reminder.uuid AS reminder_uuid, reminder.item_uuid AS > reminder_item_uuid, remind > iod, reminder.rdate AS reminder_rdate, reminder.dirty AS > reminder_dirty, reminder.method AS reminder_method > FROM reminder ORDER BY reminder.oid > [2006-07-05 15:44:22,687] [engine]: [] >>>> query = session.query(Reminder).options(eagerload('item')) > Traceback (most recent call last): > File "<stdin>", line 1, in ? > File "C:\home\slzatz\listmanager\sqlalchemy\orm\query.py", line 244, > in options > return self.mapper.options(*args, **kwargs).using > (session=self._session) > File "C:\home\slzatz\listmanager\sqlalchemy\orm\mapper.py", line > 717, in options > option.process(mapper) > File "C:\home\slzatz\listmanager\sqlalchemy\orm\properties.py", line > 644, in process > self.process_by_key(mapper, self.key) > File "C:\home\slzatz\listmanager\sqlalchemy\orm\properties.py", line > 653, in process_by_key > self.create_prop(mapper, tokens[0]) > File "C:\home\slzatz\listmanager\sqlalchemy\orm\properties.py", line > 726, in create_prop > oldprop = mapper.props[key] > KeyError: 'item' >>>> reminders[0].item > Traceback (most recent call last): > File "<stdin>", line 1, in ? > AttributeError: 'Reminder' object has no attribute 'item' >>>> items = session.query(Item).select >>>> (Item.c.uuid==Reminder.c.item_uuid) > [2006-07-05 15:45:53,311] [engine]: SELECT item.note AS item_note, > item.name AS item_name, item.timestamp AS item_timestamp, > item.createdate AS item_createda > em_section_id, item.duedate AS item_duedate, item.priority AS > item_priority, item.finisheddate AS item_finisheddate, item.dirty AS > item_dirty, item.id AS ite > uid > FROM item, reminder > WHERE item.uuid = reminder.item_uuid ORDER BY item.oid > [2006-07-05 15:45:53,311] [engine]: [] >>>> query = session.query(Reminder).options(eagerload('item')) >>>> query > <sqlalchemy.orm.query.Query object at 0x00CCAB30> >>>> reminders[0].item > [2006-07-05 15:48:33,720] [engine]: SELECT item.note AS item_note, > item.name AS item_name, item.timestamp AS item_timestamp, > item.createdate AS item_createda > em_section_id, item.duedate AS item_duedate, item.priority AS > item_priority, item.finisheddate AS item_finisheddate, item.dirty AS > item_dirty, item.id AS ite > uid > FROM item > WHERE item.uuid = ? ORDER BY item.oid > [2006-07-05 15:48:33,720] [engine]: > [u'7adef8f6f88443b18b8e55b6ac73eba2'] > <sa.Item object at 0x00CD4590> >>>> Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ Sqlalchemy-users mailing list Sqlalchemy-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sqlalchemy-users