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

Reply via email to