If you're going to change the field validator, you must do it *before*
creating the form object.
On Monday, June 8, 2015 at 10:29:37 AM UTC-4, 黄祥 wrote:
>
> thanks anthony, put the logic outside the form process do the trick, but
> it seems, that i process further for the value.
> e.g.
> def receipt_form():
> form = SQLFORM(db.receipt_header)
> #if form.vars.receipt_type == 'Purchase Order':
> #if request.vars.receipt_type == 'Purchase Order':
> if request.post_vars.receipt_type == 'Purchase Order':
> db.receipt_header.purchase_order_no.requires =
> IS_IN_DB(db(db.purchase_order_header.status == 'Purchase Order'),
>
> db.purchase_order_header.id, db.purchase_order_header._format)
>
> #row_header = db(db.purchase_order_header.id ==
> form.vars.purchase_order_no).select().first()
> row_header = db(db.purchase_order_header.id ==
> request.vars.purchase_order_no).select().first()
> form.vars.supplier = row_header.supplier
> form.vars.receipt_no =
> str(receipt_id)+'/RC/'+request.now.strftime('%y%m%d')+'/'+str(form.vars.supplier)
>
> session.receipt_header = dict(form.vars)
> rows = db(db.purchase_order_detail.purchase_order_no ==
> session.receipt_header['purchase_order_no']).select()
>
> """
> cutted for purchase return and sale return
> """
>
> #if form.validate():
> if form.process().accepted:
> for row in rows:
> id = int(row.product)
> quantity = int(row.quantity)
>
> session.receipt_detail[id] = quantity
>
> response.js = "jQuery('#receipt_checkout').get(0).reload()"
> return dict(form = form)
>
> it return an error traceback
> Traceback
>
> 1.
> 2.
> 3.
> 4.
> 5.
> 6.
> 7.
> 8.
> 9.
> 10.
>
> Traceback (most recent call last):
> File "C:\web2py\gluon\restricted.py", line 227, in restricted
> exec ccode in environment
> File "C:/web2py/applications/shop/controllers/warehouse_transaction.py"
> <https://127.0.0.1/admin/default/edit/shop/controllers/warehouse_transaction.py>,
> line 270, in <module>
> File "C:\web2py\gluon\globals.py", line 412, in <lambda>
> self._caller = lambda f: f()
> File "C:/web2py/applications/shop/controllers/warehouse_transaction.py"
> <https://127.0.0.1/admin/default/edit/shop/controllers/warehouse_transaction.py>,
> line 60, in receipt_form
> rows = db(db.purchase_order_detail.purchase_order_no ==
> session.receipt_header['purchase_order_no']).select()
> KeyError: 'purchase_order_no'
>
>
> any idea, how to accomplish this 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 [email protected].
For more options, visit https://groups.google.com/d/optout.