You cannot do it this way because you are not processing the form. You are validating and changing requirement after it is validated and therefore they are ignored.
You should look into the form.process(onvalidate = ....) option. On Sunday, 7 June 2015 19:58:59 UTC-5, 黄祥 wrote: > > hi, > > form validate check form vars seems not working when put the conditional > logic on it. already tried : > - form.vars > - request.vars > - request.get_vars > - request.post_vars > but it seems that everything is ignore by the form logic. > e.g. > *models/db.py* > db.receipt_header.receipt_type.requires = IS_IN_SET([('Purchase Order', > T('Purchase Order') ), > ('Purchase Return', > T('Purchase Return') ), > ('Sale Return', > T('Sale Return') ) ] ) > > *controllers/default.py* > def receipt_form(): > form = SQLFORM(db.receipt_header) > if form.validate(): > if form.vars.receipt_type == 'Purchase Order': > db.receipt_header.purchase_order_no.notnull = True > db.receipt_header.purchase_order_no.required = True > elif form.vars.receipt_type == 'Purchase Return': > db.receipt_header.purchase_return_no.notnull = True > db.receipt_header.purchase_return_no.required = True > elif form.vars.receipt_type == 'Sale Return': > db.receipt_header.sale_return_no.notnull = True > db.receipt_header.sale_return_no.required = True > return dict(form = form) > > any idea how how to achieve it using web2py way? > > thanks and 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.