a class that doesn't extend your declarative base would have to be mapped explicitly using the mapper() function, otherwise it can't be referenced within a relation().
On Mar 31, 2009, at 8:04 AM, Alex Maslov wrote: > > Hello, > > We have been trying to mix a class inherited from declarative_base() > ("Country") with plain Python classes mapped using orm.mapper. We're > getting the error: > > UnmappedClassError: Class 'doupy.model.objects.Country' is not mapped > > code: > > Base = declarative_base() > class Country(object): > __tablename__ = 'countries' > ... > > Base.metadata.bind = engine > > We also tried to create Base using > Base = declarative_base(bind=engine) > and > Base = declarative_base(metadata=meta) > > with the same error. > > Full traceback below: > File '/Users/amaslov/Projects/dou-pylons/doupy/doupy/model/ > __init__.py', line 73 in <lambda> > return property(fget=lambda self: self.session.query(cls)) > File '/Users/amaslov/Projects/dou-pylons/py/lib/python2.5/site- > packages/SQLAlchemy-0.5.2-py2.5.egg/sqlalchemy/orm/session.py', line > 898 in query > return self._query_cls(entities, self, **kwargs) > File '/Users/amaslov/Projects/dou-pylons/py/lib/python2.5/site- > packages/SQLAlchemy-0.5.2-py2.5.egg/sqlalchemy/orm/query.py', line 91 > in __init__ > self._set_entities(entities) > File '/Users/amaslov/Projects/dou-pylons/py/lib/python2.5/site- > packages/SQLAlchemy-0.5.2-py2.5.egg/sqlalchemy/orm/query.py', line 100 > in _set_entities > self.__setup_aliasizers(self._entities) > File '/Users/amaslov/Projects/dou-pylons/py/lib/python2.5/site- > packages/SQLAlchemy-0.5.2-py2.5.egg/sqlalchemy/orm/query.py', line 114 > in __setup_aliasizers > mapper, selectable, is_aliased_class = _entity_info(entity) > File '/Users/amaslov/Projects/dou-pylons/py/lib/python2.5/site- > packages/SQLAlchemy-0.5.2-py2.5.egg/sqlalchemy/orm/util.py', line 485 > in _entity_info > mapper = class_mapper(entity, compile) > File '/Users/amaslov/Projects/dou-pylons/py/lib/python2.5/site- > packages/SQLAlchemy-0.5.2-py2.5.egg/sqlalchemy/orm/util.py', line 560 > in class_mapper > mapper = mapper.compile() > File '/Users/amaslov/Projects/dou-pylons/py/lib/python2.5/site- > packages/SQLAlchemy-0.5.2-py2.5.egg/sqlalchemy/orm/mapper.py', line > 662 in compile > mapper._post_configure_properties() > File '/Users/amaslov/Projects/dou-pylons/py/lib/python2.5/site- > packages/SQLAlchemy-0.5.2-py2.5.egg/sqlalchemy/orm/mapper.py', line > 691 in _post_configure_properties > prop.init() > File '/Users/amaslov/Projects/dou-pylons/py/lib/python2.5/site- > packages/SQLAlchemy-0.5.2-py2.5.egg/sqlalchemy/orm/interfaces.py', > line 408 in init > self.do_init() > File '/Users/amaslov/Projects/dou-pylons/py/lib/python2.5/site- > packages/SQLAlchemy-0.5.2-py2.5.egg/sqlalchemy/orm/properties.py', > line 707 in do_init > self._get_target() > File '/Users/amaslov/Projects/dou-pylons/py/lib/python2.5/site- > packages/SQLAlchemy-0.5.2-py2.5.egg/sqlalchemy/orm/properties.py', > line 719 in _get_target > self.mapper = mapper.class_mapper(self.argument, compile=False) > File '/Users/amaslov/Projects/dou-pylons/py/lib/python2.5/site- > packages/SQLAlchemy-0.5.2-py2.5.egg/sqlalchemy/orm/util.py', line 557 > in class_mapper > raise exc.UnmappedClassError(class_) > UnmappedClassError: Class 'doupy.model.objects.Country' is not mapped > > Any help is very much appreciated! > > Regards, > Alex > > > --~--~---------~--~----~------------~-------~--~----~ 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 sqlalchemy+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en -~----------~----~----~----~------~----~------~--~---