Re: [sqlalchemy] Problems creating tables one to one relation

2010-10-25 Thread Michael Bayer
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.



[sqlalchemy] Problems creating tables one to one relation

2010-10-25 Thread Alvaro Reinoso
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.