this works: grid=SQLFORM.smartgrid(db.purchase_order, details=False, links_in_grid=True, maxtextlengths={'purchase_order.po_number':15,}, maxtextlength=30, paginate=20, sortable=True, orderby=dict(purchase_order=[~db.purchase_order.modified_on], ), oncreate = dict(purchase_order=[po_oncreation]), csv=False, ui='jquery-ui', links=dict(purchase_order=[lambda row: A('Duplicate', _class='button', _href=URL('duplicate_purchase_order',args=[row.id])), lambda row: A('Print', _class='button', _href=URL('print_all',args=[row.id]))]), user_signature=False, onupdate=auth.archive, )
def po_oncreation(form1): auth.archive last_id = form1.vars.id row = db(db.purchase_order.id==last_id).select().first() str_po_number = row.po_number + str(row.id) row.po_number = str_po_number row.update_record() #response.flash = 'Added a Purchase Order' session.flash = 'Added a Purchase Order' return