In a model, after all tables have been defined, you could do something like this:
from functools import partial def after_insert_event(f, id, table): db.auth_event.insert(time_stamp = request.now, client_ip = request. client, user_id = auth.user_id, origin = '%s/%s' % (request.controller, request. function), description = 'ID %s created in table %s' % (id, table)) for table in db.tables: db[table]._after_insert.append(partial(after_insert_event, table=table)) You could do something for _after_update and _after_delete, though keep in mind that those operations can affect more than one record, so there won't necessarily be just a single record ID to record. Anthony On Tuesday, April 7, 2015 at 12:10:26 PM UTC-4, 黄祥 wrote: > > basically i've already create a function for it, either put it on form > level or database level, but the problem is i can't get the table name to > put it on auth_event table (description field). > *e.g. event recorded on form level* > def oncreate_event(form): > db.auth_event.insert(time_stamp = request.now, client_ip = request.client, > user_id = auth.user_id, origin = '%s/%s' % (request.controller, > request.function), > description = 'ID %s created' % (form.vars.id) ) > > *e.g. event recorded on database level with after_insert callback* > def after_insert_event(f, id): > db.auth_event.insert(time_stamp = request.now, client_ip = request.client, > user_id = auth.user_id, origin = '%s/%s' % (request.controller, > request.function), > description = 'ID %s created' % (id) ) > > so perhaps there is a way in web2py to achieve it, i want to know about it. > > thanks and 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 web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.