Hi I'm a bit concerned why the same code works with SA 0.5. Actually when there is no data in the relation, the query returns an empty list; however, as soon as I put some data in, I got the error :O I tried with 0.4.9dev...something as well, the same result though :/
Am missing the point here? Do all tables/mappers have to be defined in the same context/module? Thanks On Jun 22, 8:38 pm, "Michael Bayer" <[email protected]> wrote: > that error would have something to do with pickling, direct __dict__ > access on instances, or playing around with instrumentation extensions. > that's as much as can be said based on what you've given. > > aside from whatever reasons for using Py2.3, why ever would you go > straight to 0.4.6 and not 0.4.8 ? > > [email protected] wrote: > > > Hi > > > I've got a small problem with my python code proted from 0.5 (p2.5) to > > 0.4.6 (p2.3). > > When I try to load query objects from many-to-many relation (mapped > > via secondary keyword) I get most weird error: > > > Traceback (most recent call last): > > File "<string>", line 86, in ? > > File "X", line 17, in call_from_unix > > File "X", line 12, in test > > File "/usr/lib/python2.3/site-packages/SQLAlchemy-0.4.6-py2.3.egg/ > > sqlalchemy/orm/attributes.py", line 44, in __get__ > > return self.impl.get(instance._state) > > File "/usr/lib/python2.3/site-packages/SQLAlchemy-0.4.6-py2.3.egg/ > > sqlalchemy/orm/attributes.py", line 281, in get > > return self.set_committed_value(state, value) > > File "/usr/lib/python2.3/site-packages/SQLAlchemy-0.4.6-py2.3.egg/ > > sqlalchemy/orm/attributes.py", line 635, in set_committed_value > > collection.append_without_event(item) > > File "/usr/lib/python2.3/site-packages/SQLAlchemy-0.4.6-py2.3.egg/ > > sqlalchemy/orm/collections.py", line 540, in append_without_event > > getattr(self._data(), '_sa_appender')(item, _sa_initiator=False) > > AttributeError: 'InstrumentedList' object has no attribute > > '_sa_appender' > > > Any idea what is going on? It doesn't happen with sa > 0.5 > > > Any help will be much appreciated > > Cheers > > > The tables look like follows: > > ------------------------------------------------------------------------------------------------------------------------- > > import sqlalchemy; > > import sqlalchemy.orm; > > import rfang.model.rfablcklstinstr; > > import rfang.model.rfaruntime; > > > t_RfaEnvironment = None; > > t_RfaEnvironment_RfaBlcklstInstr = None; > > > def initializeTable(metadata): #{{{ > > global t_RfaEnvironment; > > global t_RfaEnvironment_RfaBlcklstInstr; > > if(t_RfaEnvironment == None): > > t_RfaEnvironment = sqlalchemy.Table("RuntimeConfigType", > > metadata, > > sqlalchemy.Column > > ("id",sqlalchemy.types.Integer,sqlalchemy.schema.Sequence > > ("id_RuntimeConfigType"),primary_key=True), > > sqlalchemy.Column("name",sqlalchemy.types.Unicode > > (10),nullable=False,unique=True), > > sqlalchemy.Column("filename",sqlalchemy.types.Unicode > > (100),nullable=False), > > sqlalchemy.Column("filtername",sqlalchemy.types.Unicode > > (255),nullable=False), > > useexisting=True > > ); > > rfang.model.rfablcklstinstr.initializeTable(metadata); > > t_RfaEnvironment_RfaBlcklstInstr = sqlalchemy.Table > > ("RuntimeConfigType_Blacklist", metadata, > > sqlalchemy.Column > > ("runtimeConfigType_id",sqlalchemy.types.Integer,sqlalchemy.ForeignKey > > ('RuntimeConfigType.id')), > > sqlalchemy.Column > > ("blacklist_id",sqlalchemy.types.Integer,sqlalchemy.ForeignKey > > ('Blacklist.id')), > > useexisting=True > > ); > > return; > > #def }}} > > > def initializeMapper(): #{{{ > > global t_RfaEnvironment; > > global t_RfaEnvironment_RfaBlcklstInstr; > > sqlalchemy.orm.mapper( RfaEnvironment, t_RfaEnvironment, > > properties = { > > "rfaruntimes" : sqlalchemy.orm.relation > > (rfang.model.rfaruntime.RfaRuntime,backref="rfaenvironment",cascade="all,delete,delete- > > orphan"), > > "rfablacklist" : sqlalchemy.orm.relation > > (rfang.model.rfablcklstinstr.RfaBlcklstInstr,secondary = > > t_RfaEnvironment_RfaBlcklstInstr ,backref="rfaenvironments") > > }); > > return; > > #def }}} > > > class RfaEnvironment(object): > > > def __init__(self, name=None, filtername=None, filename=None, > > rfaruntimes=[], rfablacklist=[]): #{{{2 > > self.name = name; > > self.filename = filename; > > self.filtername = filtername; > > self.rfablacklist = rfablacklist; > > self.rfaruntimes = rfaruntimes; > > return; > > #def }}}2 > > > #class RuntimeConfigType > > ------------------------------------------------------------------------------------------------------------------------- > > import sqlalchemy; > > import sqlalchemy.orm; > > import rfang.model.rfaenvironment; > > import rfang.model.rfarun; > > > t_RfaSuite = None; > > t_RfaSuite_RfaEnvironment = None; > > > def initializeTable(metadata): #{{{ > > global t_RfaSuite; > > global t_RfaSuite_RfaEnvironment; > > if(t_RfaSuite == None): > > t_RfaSuite = sqlalchemy.Table("RfaSuite",metadata, > > sqlalchemy.Column > > ("id",sqlalchemy.types.Integer,sqlalchemy.schema.Sequence > > ("id_RfaSuite"),primary_key=True), > > sqlalchemy.Column("name",sqlalchemy.types.Unicode > > (50),nullable=False), > > useexisting=True > > ); > > rfang.model.rfaenvironment.initializeTable(metadata); > > t_RfaSuite_RfaEnvironment = sqlalchemy.Table > > ("RfaSuite_RuntimeConfigType",metadata, > > sqlalchemy.Column > > ("RfaSuite_id",sqlalchemy.types.Integer,sqlalchemy.ForeignKey > > ("RfaSuite.id")), > > sqlalchemy.Column > > ("RuntimeConfigType_id",sqlalchemy.types.Integer,sqlalchemy.ForeignKey > > ("RuntimeConfigType.id")), > > useexisting=True > > ); > > return; > > #def }}} > > > def initializeMapper(): #{{{ > > global t_RfaSuite; > > global t_RfaSuite_RfaEnvironment; > > sqlalchemy.orm.mapper(RfaSuite, t_RfaSuite, properties = { > > "rfaenvironments" : sqlalchemy.orm.relation > > (rfang.model.rfaenvironment.RfaEnvironment,secondary=t_RfaSuite_RfaEnvironment, > > backref="rfasuites"), > > "rfaruns" : sqlalchemy.orm.relation > > (rfang.model.rfarun.RfaRun,backref="rfasuite",cascade="all,delete,delete- > > orphan",order_by=rfang.model.rfarun.t_RfaRun.c.id) > > }); > > return; > > #def }}} > > > class RfaSuite(object): > > > def __init__(self,name,rfaenvironments = [],rfaruns = []): #{{{2 > > self.name = name; > > self.rfaenvironments = rfaenvironments; > > self.rfaruns = rfaruns; > > return; > > #def }}}2 > > > # class RfaSuite --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to [email protected] 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 -~----------~----~----~----~------~----~------~--~---
