"... onvalidation, oncreate, onupdate and ondelete are callback functions. All but ondelete take a form object as input. ..."
I'd try replacing onaccept with something like this (not tested): onaccept: lambda form: locate(request.args(0)) That way the action will call the function after the form is sent. In your code, locate() is called on form instantiation (before submission)

