I guess you're looking for something like this:
In db_00.py: db.define_table('stores', Field('name'), migrate='stores.table') db.define_table('regions', Field('abbr',length=2), migrate='regions.table') db.define_table('store_region', Field('store_id',db.stores), Field('region_id',db.regions), migrate='store-region.table') Note: store-region should be store_region In a controller: def stores(): form=SQLFORM.factory(Field('region',requires=IS_IN_DB(db,'regions.id','% (abbr)s'))) rows=[] if form.accepts(request.vars, session): response.flash = 'form accepted' rows=db((db.store_region.store_id==db.stores.id)&\ (db.store_region.region_id==request.vars.region))\ .select(db.stores.name,orderby=db.stores.name) elif form.errors: response.flash = 'form has errors' else: response.flash = 'please fill out the form' return dict(form=form,rows=rows) Kind regards, Annet.