On Saturday, November 26, 2011 11:40:27 AM UTC-5, Rocco De Marco wrote: > > db.mytable.field2.requires = IS_IN_SET(['option1'],['option2']) > I think you want:
IS_IN_SET(['option1', 'option2']) > 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) > I don't think SQLFORM takes an onupdate argument, and you would need to call SQLFORM.accepts, SQLFORM.validate, or SQLFORM.process after creating the SQLFORM in order to get validation/updating to happen. Perhaps you mean to use SQLFORM.grid() -- that does take an onupdate arg, but it must be a function (e.g., a lambda). But why are you automatically setting field2 to 'option2' on update -- don't you want to let the user choose the option? If not, make sure field2 isn't shown in the form. I recommend giving the relevant sections of ch. 7 a good read: http://web2py.com/book/default/chapter/07 Anthony