sure, if you can file a ticket for that it would be helpful (assert that primaryjoin/secondaryjoin are instances of ClauseElement).
On Jun 25, 2008, at 4:57 AM, Werner F. Bruhin wrote: > > I am changing my model to using "declarative". > > I am getting an exception "bool' object has no attribute > '__visit_name__'" (full exception below) which was relatively > difficult > for me to trace down. > > The bool exception I get when I change this: > vrecingrwfit = sao.relation('Vrecingrwfit', primaryjoin= > (__table__.c.recipeid=='vrecingrwfit.fk_recipeid'), > passive_deletes=True) > to this: > vrecingrwfit = sao.relation('Vrecingrwfit', primaryjoin= > ('Recipe.recipeid'=='vrecingrwfit.fk_recipeid'), > passive_deletes=True) > > It happens as I did not define the primaryjoin correctly. > Correcting it to one string, i.e. removing the middle quotes fixed it: > vrecingrwfit = sao.relation('Vrecingrwfit', primaryjoin= > ('Recipe.recipeid==vrecingrwfit.fk_recipeid'), > passive_deletes=True) > > May I suggest to change/improve the exception, i.e. give some pointer > where in the model the problem is. > > Werner > > > Traceback (most recent call last): > File "saTest.py", line 42, in <module> > x = session.query(dbmin.Prefminimal).get(1) > File > "c:\python25\lib\site-packages\sqlalchemy-0.5.0beta1-py2.5.egg > \sqlalchemy\orm\session.py", > line 894, in query > return self._query_cls(entities, self, **kwargs) > File > "c:\python25\lib\site-packages\sqlalchemy-0.5.0beta1-py2.5.egg > \sqlalchemy\orm\query.py", > line 97, in __init__ > self.__setup_aliasizers(self._entities) > File > "c:\python25\lib\site-packages\sqlalchemy-0.5.0beta1-py2.5.egg > \sqlalchemy\orm\query.py", > line 111, in __setup_aliasizers > mapper, selectable, is_aliased_class = _entity_info(entity, > ent.entity_name) > File > "c:\python25\lib\site-packages\sqlalchemy-0.5.0beta1-py2.5.egg > \sqlalchemy\orm\util.py", > line 398, in _entity_info > mapper = class_mapper(entity, entity_name, compile) > File > "c:\python25\lib\site-packages\sqlalchemy-0.5.0beta1-py2.5.egg > \sqlalchemy\orm\util.py", > line 488, in class_mapper > mapper = mapper.compile() > File > "c:\python25\lib\site-packages\sqlalchemy-0.5.0beta1-py2.5.egg > \sqlalchemy\orm\mapper.py", > line 370, in compile > mapper.__initialize_properties() > File > "c:\python25\lib\site-packages\sqlalchemy-0.5.0beta1-py2.5.egg > \sqlalchemy\orm\mapper.py", > line 391, in __initialize_properties > prop.init(key, self) > File > "c:\python25\lib\site-packages\sqlalchemy-0.5.0beta1-py2.5.egg > \sqlalchemy\orm\interfaces.py", > line 378, in init > self.do_init() > File > "c:\python25\lib\site-packages\sqlalchemy-0.5.0beta1-py2.5.egg > \sqlalchemy\orm\properties.py", > line 510, in do_init > self._determine_synchronize_pairs() > File > "c:\python25\lib\site-packages\sqlalchemy-0.5.0beta1-py2.5.egg > \sqlalchemy\orm\properties.py", > line 605, in _determine_synchronize_pairs > eq_pairs = criterion_as_pairs(self.primaryjoin, > consider_as_foreign_keys=self._foreign_keys, > any_operator=self.viewonly) > File > "c:\python25\lib\site-packages\sqlalchemy-0.5.0beta1-py2.5.egg > \sqlalchemy\sql\util.py", > line 268, in criterion_as_pairs > visitors.traverse(expression, {}, {'binary':visit_binary}) > File > "c:\python25\lib\site-packages\sqlalchemy-0.5.0beta1-py2.5.egg > \sqlalchemy\sql\visitors.py", > line 123, in traverse > return traverse_using(iterate(obj, opts), obj, visitors) > File > "c:\python25\lib\site-packages\sqlalchemy-0.5.0beta1-py2.5.egg > \sqlalchemy\sql\visitors.py", > line 115, in traverse_using > meth = visitors.get(target.__visit_name__, None) > AttributeError: 'bool' object has no attribute '__visit_name__' > > > > > > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---