I THINK YOU WANT: def update_mytable(): record=request.args[0] form=SQLFORM(db.timbrata, record, deletable=False) form.process(onaccept=lambda form: ( \ auth.archive(form), form.record_id and db(db.mytable.id==form.record_id).update(field2='option2'))) return dict (form=form)
On Nov 26, 10:40 am, Rocco De Marco <rocco.dema...@unicam.it> wrote: > Hi all, I'm a fresh newbie using w2p. > I would hope my question is not so stupid, but I've spended a lot of > time trying to resolve myself, without success... > > I've this model: > > db.define_table('mytable', > Field('field1','string'), > Field('field2')) > db.mytable.field2.requires = IS_IN_SET(['option1'],['option2']) > > I've already a created record with field2=option1 > I want to create a form where users can change the field1 value, but > the field2 value should be automatically setted to option2 only if the > record has been updated. > > I tried with: > > def update_mytable(): > record=request.args[0] > form=SQLFORM(db.timbrata, > record, > onaccept=auth.archive, > > onupdate=db(db.mytable.id==record).update(field2='option2'), > deletable=False) > return dict (form=form) > > But the filed2 is updated just when the form is showed, not, as I > expected, after an update. > Maybe I took a wrong way, someone could help? > > Regards, Rocco