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