On Sun, 2009-05-03 at 09:43 -0400, Michael Bayer wrote:
> 
> 
> On May 2, 2009, at 8:16 PM, Iain Duncan wrote:
> 
> >
> > On Sat, 2009-05-02 at 09:41 -0400, Michael Bayer wrote:
> >>
> >> you'd set cascade="all, delete-orphan" on the Purchase.registration
> >> side (in this case its your backref).
> >
> > Thanks Mike. So what is the recommended way of creating the attached
> > item though, or is it supposed to happen automatically from the  
> > mapper?
> 
> 
> you can say p.registration = r, or Purchase(registration=r), the  
> cascade option would enforce the constraint at flush time.

Ah, so that is the reverse of what I was thinking. You see, the form's
job is to create a registration. So is it equally fine to go the other
way?

r = Registration( purchase=Purchase() )

or even better ( i hope? )

class Registration(object):
  def __init__(self, **kwargs):
    self.purchase = Purchase()
    for k,v in kwargs.items(): setattr(self,k,v)

? 
thanks Mike
Iain

> 
> 
> >
> >
> > Iain
> >>
> >>
> >> On May 2, 2009, at 1:42 AM, Iain Duncan wrote:
> >>
> >>>
> >>> Hi all, I have a mapper that looks like this:
> >>>
> >>> mapper( Registration, registration_table, properties={
> >>>   'purchase': relation(Purchase,
> >>> backref=backref('registration', uselist=False),
> >>>       cascade='all' ),
> >>> })
> >>>
> >>> My registration table has a foreign key to purchases, and I want to
> >>> make
> >>> sure no registration exists without an associated purchase. I have  
> >>> the
> >>> referrence backwards like a many-to-one because purchases may also  
> >>> be
> >>> referred to in other tables ( like memberships ). Maybe this is  
> >>> not a
> >>> good idea, not sure. Feel free to tell me. Should this perhaps be
> >>> handled in a separate associating table with primary key with one
> >>> column
> >>> primary key constraints on it?
> >>>
> >>> But, my immediate problem is that I don't know what the correct  
> >>> way to
> >>> make sure I create a purchase on creation of a registration. Should
> >>> I be
> >>> creating a purchase in the registration constructor? Should I be  
> >>> doing
> >>> something like:
> >>>
> >>> r = Registration( purchase=Purchase() )
> >>>
> >>> Or should it work magically if I set up my cascade options
> >>> differently?
> >>>
> >>> Thanks
> >>> Iain
> >>>
> >>>
> >>>
> >>>>
> >>
> >>
> >>>
> >
> >
> > >
> 
> 
> > 


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

Reply via email to