the ondelete doesn't receive a single record: it receives the  set that is 
going to be deleted (remember, one can drop a whole bunch of rows with a 
single delete())
i.e. when you fire db(cond).delete(), cond is passed.

If I understand what you're trying to do, you need to fetch the 
corresponding receipt_order and update the purchase_order accordingly..... 
this should work fine (untested)

def __ondelete_receipt_order(s):
        receipt_order = db(s).select()
        db(db.purchase_order_header.id == 
receipt_order.purchase_order_no).update(status='blablabla')


On Saturday, September 14, 2013 1:19:38 PM UTC+2, 黄祥 wrote:
>
> hi,
>
> i have a code :
> e.g.
> # ondelete_receipt_order
> def __ondelete_receipt_order(receipt_order):
> db(db.purchase_order_header.id==receipt_order.purchase_order_no).update(status='Purchase
>  
> Order Authorized')
>
> # receipt_order_header
> db.receipt_order_header._before_delete.append(lambda s: 
> __ondelete_receipt_order(s.select()[0], True) )
> ''' for test
> db.receipt_order_header._before_delete.append(lambda s: 
> __ondelete_receipt_order(s.select()[0]) )
> '''
>
> i'm trying above code but the purchase_order_header table is not updated 
> when i delete the receipt_order_header (no errors occured, just 
> the purchase_order_header table is not updated).
> is there a way how to update the other table using _before_delete callback 
> function?
>
> 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/groups/opt_out.

Reply via email to