It's fixed. I was my mistake, I didn't realize it. Thank you! On Oct 25, 5:19 pm, Michael Bayer <mike...@zzzcomputing.com> wrote: > On Oct 25, 2010, at 4:59 PM, Alvaro Reinoso wrote: > > > I think it should be another problem because I have a file where I > > initialize all the tables, so that file contains all the tables. The > > tables are created properly, but when I try to create a Screen object > > (the main class, Screen -> CRM -> CRMContactInformation), I get this > > error: > > looks like you are passing a Table object, or the name of one, where a mapped > class is expected. this would be the cause of that: > > contactInformation = relationship("crm_contact_informations", uselist=False, > backref="crms") > > "CRMContactInformation" > > > > > UnmappedClassError: Class 'Table('crm_contact_informations', > > MetaData(None), Column('id', Integer(), ForeignKey('crms.id'), > > table=<crm_contact_informations>, primary_key=True, nullable=False), > > Column('owner', String(length=50, convert_unicode=False, > > assert_unicode=None, unicode_error=None, _warn_on_bytestring=False), > > table=<crm_contact_informations>), Column('owner_phone', > > String(length=20, convert_unicode=False, assert_unicode=None, > > unicode_error=None, _warn_on_bytestring=False), > > table=<crm_contact_informations>), Column('owner_email', > > String(length=50, convert_unicode=False, assert_unicode=None, > > unicode_error=None, _warn_on_bytestring=False), > > table=<crm_contact_informations>), Column('store_manager', > > String(length=50, convert_unicode=False, assert_unicode=None, > > unicode_error=None, _warn_on_bytestring=False), > > table=<crm_contact_informations>), Column('store_phone', > > String(length=20, convert_unicode=False, assert_unicode=None, > > unicode_error=None, _warn_on_bytestring=False), > > table=<crm_contact_informations>), Column('store_email', > > String(length=50, convert_unicode=False, assert_unicode=None, > > unicode_error=None, _warn_on_bytestring=False), > > table=<crm_contact_informations>), Column('it_manager', > > String(length=50, convert_unicode=False, assert_unicode=None, > > unicode_error=None, _warn_on_bytestring=False), > > table=<crm_contact_informations>), Column('it_manager_phone', > > String(length=20, convert_unicode=False, assert_unicode=None, > > unicode_error=None, _warn_on_bytestring=False), > > table=<crm_contact_informations>), Column('it_manager_email', > > String(length=50, convert_unicode=False, assert_unicode=None, > > unicode_error=None, _warn_on_bytestring=False), > > table=<crm_contact_informations>), schema=None)' is not mapped > > > On Oct 25, 3:58 pm, Michael Bayer <mike...@zzzcomputing.com> wrote: > >> all modules which include mapped classes must be imported before you > >> attempt to initialize the mappings. If class A references "B", but "class > >> B" doesn't exist, you get errors like that, so importing the modules that > >> contain both class A and B solves the issue. > > >> On Oct 25, 2010, at 2:55 PM, Alvaro Reinoso wrote: > > >>> Hello, > > >>> I get errors when I try to create tables one to one relation. Screen > >>> contains crm and crm contains more classes. The relation is one to one > >>> between crm, so I want to use the screen id as primary key in crm. And > >>> the relation is one to one between crm and some classes, I just added > >>> one class as example, so children of crm must contain a screen id as a > >>> primary key. When I try to make the last relation, it's when it > >>> breaks. I tried to use both, crm id and screen id. > > >>> I didn't work. I get errors such as, "UnmappedClassError" when I try > >>> to use crm id in ContactInformation, and "Could not determine join > >>> condition between parent/child tables on relationship > >>> CRM.contactInformation. Specify a 'primaryjoin' expression. If this is > >>> a many-to-many relationship, 'secondaryjoin' is needed as well" when I > >>> try to use screen id in ContactInformation. > > >>> These are my classes: > > >>> class Screen(rdb.Model): > >>> """Set up screens table in the database""" > >>> rdb.metadata(metadata) > >>> rdb.tablename("screens") > > >>> id = Column("id", Integer, primary_key=True) > >>> title = Column("title", String(100)) > >>> .... > > >>> crm = relationship("CRM", uselist=False, backref="screens") > > >>> class CRM(rdb.Model): > >>> """Set up crm table in the database""" > >>> rdb.metadata(metadata) > >>> rdb.tablename("crms") > > >>> id = Column("id", Integer, ForeignKey("screens.id"), > >>> primary_key=True) > > >>> contactInformation = relationship("crm_contact_informations", > >>> uselist=False, backref="crms") > >>> .... > > >>> class CRMContactInformation(rdb.Model): > >>> """Set up crm contact information table in the database""" > >>> rdb.metadata(metadata) > >>> rdb.tablename("crm_contact_informations") > > >>> id = Column("id", Integer, ForeignKey("screens.id"), > >>> primary_key=True) > >>> owner = Column("owner", String(50)) > >>> ... > > >>> -- > >>> You received this message because you are subscribed to the Google Groups > >>> "sqlalchemy" group. > >>> To post to this group, send email to sqlalch...@googlegroups.com. > >>> To unsubscribe from this group, send email to > >>> sqlalchemy+unsubscr...@googlegroups.com. > >>> For more options, visit this group > >>> athttp://groups.google.com/group/sqlalchemy?hl=en. > > > -- > > You received this message because you are subscribed to the Google Groups > > "sqlalchemy" group. > > To post to this group, send email to sqlalch...@googlegroups.com. > > To unsubscribe from this group, send email to > > sqlalchemy+unsubscr...@googlegroups.com. > > For more options, visit this group > > athttp://groups.google.com/group/sqlalchemy?hl=en.
-- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalch...@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.