Hi Iam very new to web2py. According to my understanding, if the c value is greater than zero the c value has to be displayed. I used the same code as yours but I did not see the c value printed. Can you please clarify if Iam understanding it wrong.
On Friday, December 23, 2011 at 3:13:04 PM UTC-6, Massimo Di Pierro wrote: > > onvalidation = my_form_processing > > registers a callback (called after validation and before accepting). > This does not work > > def my_form_processing(table_name, form): form.vars.field1 = > table_name # I know useless, it just > > because the callback function must take a single parameter, the form. > You can do instead > > def my_form_processing(form): > form.vars.field1 = form.table.name # I know useless, it just > > Hope this helps. > > > On Dec 23, 1:32 pm, Richard <ml.richard.vez...@gmail.com> wrote: > > Hello, > > > > In the book there is this example : > > > > db.define_table('numbers', > > Field('a', 'integer'), > > Field('b', 'integer'), > > Field('c', 'integer', readable=False, writable=False)) > > > > def my_form_processing(form): > > c = form.vars.a * form.vars.b > > if c < 0: > > form.errors.b = 'a*b cannot be negative' > > else: > > form.vars.c = c > > > > def insert_numbers(): > > form = SQLFORM(db.numbers) > > if form.process(onvalidation=my_form_processing).accepted: > > session.flash = 'record inserted' > > redirect(URL()) > > return dict(form=form) > > > > Where "my_form_processing" function is called without bracket and > > arguments... > > > > I try to do this that failed : > > > > def my_form_processing(table_name, form): > > form.vars.field1 = table_name # I know useless, it just > > demonstration for purpose of my question... > > > > ... > > > > if form.process(onvalidation=my_form_processing(request.args(0), > > form)).accepted: > > > > Then I did : > > > > def my_form_processing(form): > > form.vars.field1 = request.args(0) > > > > ... > > > > if form.process(onvalidation=my_form_processing).accepted: > > > > That actually works... > > > > I would like to make sure that I understand onvalidation properly... > > > > Is "my_form_processing" just a extension of the "insert_numbers()" > > function? > > > > And if so, does it have access to all the same variables > > (environnement) of "inser_numbers()"?? > > > > Thank you! > > > > Richard -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.