I've got a simple mapping between User and Blog: # Parent user_table = Table('user', metadata, Column('id', Integer, primary_key=True), Column('username', String(50)), Column('password', Unicode(50)), ) # Child blog_table = Table('blog', metadata, Column('id', Integer, primary_key=True), Column('title', String(100)), Column('date_created', DateTime()), Column('user_id', Integer, ForeignKey('user.id')) )
... mapper(User, user_table, properties = { 'blogs': relation(Blog, backref='user') }) mapper(Blog, blog_table) My foreignkeys aren't being saved/stored properly. No matter how many 'children' I create, the foreignkey only stays saved with the most recently added: sqlite> select * from blog; 1|blog1|2009-06-05 19:41:33.555387| 2|blog2|2009-06-05 19:41:42.551838| 3|blog3|2009-06-05 19:42:28.280046| 4|blog4|2009-06-05 19:44:19.180090| 5|blog5|2009-06-05 19:46:38.580777|1 sqlite> Here's how they are being saved. My controller saveblog(): @expose() def saveblog(self, **input): if request.method == 'POST': if not input['blog_title']: msg = 'You must give a title name.' redirect('/createblog', message=msg) try: session_user = cherrypy.session['username'] user = session.query(User).filter_by (username=session_user).one() user.blogs = [Blog(title=input['blog_title'], date_created=datetime.datetime.now())] msg = 'Successfully created blog %s.' % input ['blog_title'] redirect('/', message=msg) except KeyError: redirect('/', message='Session lost or timed out') except NoResultFound: redirect('/', message='Error: database corrupt.') Why is it doing this? Please help, thanks. --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---