On Aug 26, 2008, at 6:08 PM, Alex Mathieu wrote:

> Let's say I have two classes:
>
> class PublicationElement(Entity):
>    using_options(tablename='publication')
>    sections = OneToMany('SectionElement')
>    covers = OneToMany('PublicationCoverElement')
>    publication_id = Field(Integer, primary_key=True)
>    name = Field(Unicode(255))
>    short_name = Field(Unicode(30))
>    app_download_link = Field(UnicodeText)
>
> class SectionElement(Entity):
>    using_options(tablename='section')
>    publication = ManyToOne('PublicationElement',
> colname="publication_id", cascade="all,delete-orphan")
>    section_id = Field(Integer, primary_key=True)
>    name = Field(Unicode(255))
>    articles_on_cover = Field(Integer)
>    articles_on_sub_cover = Field(Integer)
>    ad_on_top = Field(Boolean)
>    ad_on_bottom = Field(Boolean)
>    poll_rate_minutes = Field(Integer)
>    poll_weight = Field(Integer)
>    show_sub_cover = Field(Boolean)
>
> If I delete a PublicationElement entity, all the related
> SectionElement entities get their publication_id key set to 0... and I
> just can't figure it out why. I've been digging through the web, but
> wasn't able any answer... Maybe I putted my cascade argument at the
> wrong place ? Not sure to get it...

this mapping suggests that the deletion of a SectionElement will cause  
the deletion of a related PublicationElement, but not the other way  
around.   The cascade would have to be moved to the  
"PublicationElement.sections" side of the relation.    Im not sure  
where the "0" is coming from, SQLAlchemy will normally set foreign key  
references to NULL if no row is related.

--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to