I see the problem, the computed field is computed by the insert function
while f in the _after_insert_delivery_order are the record parameters as
passed to the insert function (before the field is computed). So I'd say
this is not supposed to work. Open a ticket with your code and we will
consider the improvement.
On Thursday, 5 November 2015 05:13:46 UTC-6, 黄祥 wrote:
>
> compute field not work when using after insert callback too.
> e.g.
> def __after_insert_delivery_order(f, id):
> db(db.customer.id == f.customer).update(last_delivery_order_net = f.gross
> - f.tarra) # work
> #db(db.customer.id == f.customer).update(last_delivery_order_net = f.net)
> # not work
>
> def on_define_delivery_order(table):
> table._after_insert.append(__after_insert_delivery_order)
> table.net.compute = lambda r: r['gross'] - r['tarra']
>
> db.define_table('delivery_order',
> Field('delivery_order_no'),
> Field('customer', 'reference customer'),
> Field('tarra', 'integer'),
> Field('gross', 'integer'),
> Field('net', 'integer'),
> on_define = on_define_delivery_order,
> format = '%(delivery_order_no)s')
>
> not sure is it bug, or normal behaviour.
>
> 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.