Gregg Lind wrote: > I have a many-to-one relation, let's say between Address and User, both > created using Declarative. > > I would like it that if an Address references a User, it will create that > User, if it doesn't exist. Otherwise, it should use the existing one. > There should be no addresses in the table that don't have users. *It > could > be that my whole sense of modeling is fouled up here, and I appreciate > correction.* > > 1. Is this possible using the current _cascade_ tools? Is so, how is it > set up?
no, since you're talking about instantiating an object that doesn't exist otherwise. > 2. If not, then what is the best way to handle this? the constructor of your Address says, "self.user = User(<args you want>)". If that's too early, you can write a SessionExtension.before_flush() that scans through and ensures all Address objects have a default User() as desired. > 3. From the docs for "relation" it seems like the cascading is all viewed > from the "parent" (one) side, is that correct? all relation()s feature cascading. A two-way relationship consists of two separate relation()s, "backref" is just a shortcut to creating them and linking them together. "parent" and "child" are relative to which relation() you're referring to. --~--~---------~--~----~------------~-------~--~----~ 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 sqlalchemy+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en -~----------~----~----~----~------~----~------~--~---