Ok that seems to have done the trick. However, it's creating a new record every time which means that the logged in user does not refer to the tutor table. Does the id field have to be the same as auth.user_id? The id field seems to be generated automatically. In my tutor table I have a line that says Field('user', 'reference auth.user.id') but the relation does not seem like it's being made...
On Friday, December 7, 2012 11:28:06 PM UTC, Anthony wrote: > > You can try > update_or_insert()<http://web2py.com/books/default/chapter/29/06#update_or_insert> > . > > Anthony > > On Friday, December 7, 2012 5:54:58 PM UTC-5, Daniele wrote: >> >> I am unable to update entries in my database. I think I have an idea of >> why this may be, but I'm not sure how to go about fixing this. >> >> In my controller, I have: >> >> tform = SQLFORM.factory( >> Field('is_tutor', 'boolean'), >> *[f for f in db.tutor if f.name.startswith('t_')], >> table_name='tutor') >> >> if tform.process().accepted: >> if tform.vars.is_tutor: >> if not auth.has_membership('Tutors'): >> auth.add_membership('Tutors') >> db(db.tutor.user == auth.user_id).update( >> t_Hourly_Rate = tform.vars.t_Hourly_Rate, >> t_Image = tform.vars.t_Image, >> t_Qualifications = tform.vars.t_Qualifications, >> t_Subjects = tform.vars.t_Subjects, >> t_Location = tform.vars.t_Location, >> t_Biography = tform.vars.t_Biography >> ) >> else: >> if auth.has_membership('Tutors'): >> auth.del_membership('Tutors') >> response.flash = T('Profile updated!') >> elif tform.errors: >> response.flash = T('There was an error with your submission') >> >> >> However, when I submit the form I am just getting a bunch of 'None' values. >> I think the problem may be that >> I'm trying to update db(db.tutor.user == auth.user_id) but if db.tutor.user >> does not exist, it is not being assigned >> the value of the currently logged in user (auth.user_id) >> How can I go about fixing this?? >> Thanks >> >> >> --