creo que querrá utilizar el options()
method on the Query, with eagerload()
or eagerload_all()
.
He aquí un ejemplo de uso de una de nuestras aplicaciones, donde la clase Controlled
tiene una relación llamada changes
que trae en un montón de DocumentChange
registros, que a su vez tienen una relación dco
que reúne en un solo objeto Dco
por instancia. Esta es una carga ansiosa de dos niveles, por lo tanto, el uso del eagerload_all()
. Estamos utilizando la extensión declarative
(en caso de que eso importe) y m.Session es una sesión "con alcance" (thread-local).
from sqlalchemy.orm import eagerload, eagerload_all
...
controlled_docs = (m.Session.query(m.Controlled)
.options(eagerload_all('changes.dco'))
.order_by('number')
.all())
Si eso no es suficiente, tal vez incluyen un fragmento o texto que muestra cómo se relacionan las clases ORM pertinentes y pude actualizar la respuesta para mostrar cómo se utilizarían esas opciones en su caso.