Aside from the code below, somewhat simpler approaches would be to 
manipulate request.post_vars *before* calling SQLFORM, or using an 
onvalidation function (which allows you to change form.vars after 
validation but before the db insert). With those approaches, you don't have 
to manually do the db insert.

On Friday, June 6, 2014 11:02:21 PM UTC-4, 黄祥 wrote:
>
> i think you can achieve it using form.validate :
> e.g.
> def booking():
>     form = SQLFORM(db.booking_header)
>     if form.validate():
>         db.booking_header.insert(booking_date = form.vars.booking_date, 
>                                  buyer = form.vars.buyer, 
>                                  notes = form.vars.notes)
>

Note, to avoid having to explicitly list each field, you can simply do:

    db.booking_header.insert(**db.booking_header._filter_fields(form.vars))

That will insert all the fields in form.vars that belong to 
db.booking_header.

Anthony
 

>         redirect(URL('report', 'report_booking') )
>     return dict(form = form)
>
> ref :
> http://web2py.com/books/default/chapter/29/07/forms-and-validators
>
> best regards,
> stifan
>

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

Reply via email to