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