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 at > http://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.