2014-07-15 14:47 GMT-03:00 Michael Bayer <mike...@zzzcomputing.com>: > > On Jul 15, 2014, at 1:27 PM, Mariano Mara <mariano.m...@gmail.com> wrote: > > > Hi all > > > > Each time my Parent class is edited and one of the elements from its > Child relationship is removed I want to "invalidate" this element (e.g. > element.valid=False) instead of actually performing the delete DML > instruction. How can I achieve that? > > the foreign key has to be nullable, then you make sure "delete-orphan" > cascade is not turned on, then you use a collection remove event to mark > this flag as False when it is removed from the collection: > http://docs.sqlalchemy.org/en/rel_0_9/orm/events.html#sqlalchemy.orm.events.AttributeEvents.remove > > > > > > I have created a "remove" event listener and I see the value to be > removed from the target but so far I have been unable to find a way to > successfully stop the delete event (I tried with EXP_STOP to no avail). > > just make sure delete, delete-orphan cascade are not set. It will set the > foreign key column(s) to NULL. >
But actually I don't want to lose track of the relation between parent and child. Of course, the easiest solution would be to perform the update in the ORM step but I have to use a common class to handle all ORM actions and I have to easy easy way to hook my own process in there. -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sqlalchemy+unsubscr...@googlegroups.com. To post to this group, send email to sqlalchemy@googlegroups.com. Visit this group at http://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout.