Hi, I have added computed fields to db model, but they are not computed on insert. Code is supplied below. Thanks
db.define_table('t_invoices', Field <http://127.0.0.1:8000/examples/global/vars/Field>('f_customer', type='reference t_customers', label=T <http://127.0.0.1:8000/examples/global/vars/T>('Customer')), Field <http://127.0.0.1:8000/examples/global/vars/Field>('f_date', type='date', label=T <http://127.0.0.1:8000/examples/global/vars/T>('Date')), Field <http://127.0.0.1:8000/examples/global/vars/Field>('f_invoice_no', type='string', label=T <http://127.0.0.1:8000/examples/global/vars/T>('Invoice No')), Field <http://127.0.0.1:8000/examples/global/vars/Field>('f_net', type='string', label=T <http://127.0.0.1:8000/examples/global/vars/T>('Net')), Field <http://127.0.0.1:8000/examples/global/vars/Field>('f_tax', type='string', label=T <http://127.0.0.1:8000/examples/global/vars/T>('Tax')), Field <http://127.0.0.1:8000/examples/global/vars/Field>('f_total', type='string', label=T <http://127.0.0.1:8000/examples/global/vars/T>('Total')), auth.signature, format='%(f_customer)s %(f_date)d', migrate=settings.migrate) db.define_table('t_invoices_archive',db.t_invoices,Field <http://127.0.0.1:8000/examples/global/vars/Field>('current_record','reference t_invoices',readable=False,writable=False)) ######################################## db.define_table('t_invoice_details', Field <http://127.0.0.1:8000/examples/global/vars/Field>('f_invoice', type='reference t_invoices',requires=IS_NOT_EMPTY <http://127.0.0.1:8000/examples/global/vars/IS_NOT_EMPTY>(),readable=False,writable=False, label=T <http://127.0.0.1:8000/examples/global/vars/T>('Invoice')), Field <http://127.0.0.1:8000/examples/global/vars/Field>('f_description', type='string', label=T <http://127.0.0.1:8000/examples/global/vars/T>('Description')), Field <http://127.0.0.1:8000/examples/global/vars/Field>('f_quantity', type='integer', label=T <http://127.0.0.1:8000/examples/global/vars/T>('Quantity')), Field <http://127.0.0.1:8000/examples/global/vars/Field>('f_price', type='double', label=T <http://127.0.0.1:8000/examples/global/vars/T>('Price')), Field <http://127.0.0.1:8000/examples/global/vars/Field>('f_total', type='double',compute=lambda r: r['f_quantity']*r['f_price'],writable=False, label=T <http://127.0.0.1:8000/examples/global/vars/T>('Total')), Field <http://127.0.0.1:8000/examples/global/vars/Field>('f_tax_percentage', type='integer', label=T <http://127.0.0.1:8000/examples/global/vars/T>('Tax Percentage')), Field <http://127.0.0.1:8000/examples/global/vars/Field>('f_tax', type='double',compute=lambda r: r['f_total']*r['f_tax_percentage']/100,writable=False, label=T <http://127.0.0.1:8000/examples/global/vars/T>('Tax')), Field <http://127.0.0.1:8000/examples/global/vars/Field>('f_total_w_tax', type='double',compute=lambda r: r['f_total']+r['f_tax'],writable=False, label=T <http://127.0.0.1:8000/examples/global/vars/T>('Total W Tax')), auth.signature, format='%(f_invoice)s', migrate=settings.migrate) db.t_invoice_details.f_tax_percentage.requires=IS_IN_SET <http://127.0.0.1:8000/examples/global/vars/IS_IN_SET>(['1','8','18']) db.define_table('t_invoice_details_archive',db.t_invoice_details,Field <http://127.0.0.1:8000/examples/global/vars/Field>('current_record','reference t_invoice_details',readable=False,writable=False)) def newInvoice(): form=SQLFORM.factory(db.t_invoices,db.t_invoice_details) if form.process().accepted: id=db.t_invoices.insert(**db.t_invoices._filter_fields(form.vars)) form.vars.f_invoice=id id=db.t_invoice_details.insert(**db.t_invoice_details._filter_fields(form.vars)) response.flash=T('Thanks for filling out the form') return dict(form=form) -- --- 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.