Hello,

I'm struggling with a simple one to many relation, pls help!


active_meetup = MeetupEvent(...)
reg = MeetupRegistration(meeting=active_meetup)

db.save(reg)

*<class 'sqlalchemy.exceptions.OperationalError'>: (OperationalError) (1048,
"Column 'meeting_id' cannot be null") u'INSERT INTO dou_meetup_registrants
(meeting_id, name, email, phone) VALUES (%s, %s, %s, %s)' [None, u'1.0',
u'[EMAIL PROTECTED]', u'+38 063 2061046']*

Obviously SA somehow can't find meeting_id even thou reg.meeting is OK.

Here is my mapping code:

    dou_meetupregs_tbl = Table('dou_meetup_registrants', meta,
            autoload=True)
    dou_meetups_tbl = Table('dou_meetups', meta, autoload=True)
    mapper(MeetupEvent, dou_meetups_tbl, properties={
            'registrants':relation(MeetupRegistration, backref='meetup'),
        })
    mapper(MeetupRegistration, dou_meetupregs_tbl, properties={
        })

And classes (just in case):

class MeetupEvent(object):
    regcount = property(fget=lambda self: len(self.registrants))

    def __repr__(self):
        return "<MeetupEvent %s %r>" % (self.id, self.url)

class MeetupRegistration(object):
    def __init__(self, meeting, name=None, email=None, phone=None):
        if not meeting:
            raise ValueError("Meeting event not set")
        if not email:
            raise ValueError("Email is required")
        self.meeting = meeting
        self.name = name
        self.email = email
        self.phone = phone

    def __repr__(self):
        return "<MeetupRegistration %s (%s,%s)>" % (self.id, self.meeting.id,
self.email)

-- 
Max
http://maxischenko.in.ua // http://www.linkedin.com/in/maksim

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to [email protected]
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