from sqlalchemy import inspect from sqlalchemy.orm import joinedload def reload_eagerly(obj, *rels): state = inspect(obj) if not state.persistent: raise ValueError("reload_eagerly can only be used on persistent objects") query = state.session.query(state.mapper).filter(*[col == val for col, val in zip(state.mapper.primary_key, state.identity)]) for rel in rels: if rel in state.mapper.all_orm_descriptors: rel = state.mapper.all_orm_descriptors[rel] query = query.options(joinedload(rel)) return query # Usage reload_eagerly(myuser, User.emails, User.friends).one()