def grep(term, dbsession): regions = EK.get_members('@REGION', dbsession).filter( EK.key.contains( term.lower() ) ) ids = [ r.id for r in regions ] return Location.query(dbsession).filter( or_( Location.country_id.in_( ids ), Location.level1_id.in_( ids ), Location.level2_id.in_( ids ), Location.level3_id.in_( ids ), Location.level4_id.in_( ids ) ) )