My DB:
db.define_table('container',
Field('folder','reference
folder',requires=IS_NULL_OR(IS_IN_DB(db,'folder.id','%(name)s'))),
Field('object','reference
object',requires=IS_NULL_OR(IS_IN_DB(db,'object.id','%(name)s'))),
Field('name',default=''),
Field('div',default='midle',requires=IS_IN_SET(plugin_admin_setting['div'])),
Field('position','integer',default=100),
Field('content','text',default='<div
id="div_default">{{=plugin_admin.write_object(context)}}</div>'),
Field('active','boolean',default=True),
Field('type',default='folder',requires=IS_IN_SET(['folder','content','link'])),
Field('created_by','integer',default=auth.user_id or
1,writable=False,readable=False),
Field('created_on','datetime',default=request.now,writable=False,readable=False),
migrate=plugin_admin_setting['migrate'])