I noticed that you do not add auth.signature to your table definition. Does it not work for you?
If is_my_chart was somthing I needed often like I'd be tempted to change: (full discloser: my track record is not good lately) db.define_table('chart', Field('chartName'), Field('id_workbook',db.workbook), Field('worksheet'), Field('file','upload'), auth.signature, common_filter = lambda query: db.chart.created_by==auth.user_id, format="%(id_workbook)s %(chartName)s", ) Then when I needed a different controller function that returned all records I could: db(query, ignore_common_filters=True).select(...) # copied from http://www.web2py.com/books/default/chapter/29/06?search=common_filter Again I'm not that good at this but it seems logical. -Bill --