if you only care about things that are loaded, like before, look in inspect(instance).dict , that's what's loaded
On Wed, May 2, 2018 at 4:24 PM, Jonathan Vanasco <[email protected]> wrote: > I have a mixin that helps convert object to JSON using a `columns_as_dict` > method. > > it looks like this: > > from sqlalchemy.orm import class_mapper as sa_class_mapper > > class Mixin(object): > def columns_as_dict(self): > _cls = self.__class__ > return dict((col.name, getattr(self, col.name)) for col in > sa_class_mapper(_cls).mapped_table.c) > > > I pinpointed a performance issue where the db was getting hit when > `load_only` was used on the objects. > > The simplest fix I could think of, is fetching column values from the > object's dict instead of via getattr . Is there a more appropriate way? > > from sqlalchemy.orm import class_mapper as sa_class_mapper > > class Mixin(object): > def columns_as_dict(self): > _cls = self.__class__ > return {col.name: self.__dict__[col.name] > for col in sa_class_mapper(_cls).mapped_table.c > if col.name in self.__dict__ > } > > > -- > SQLAlchemy - > The Python SQL Toolkit and Object Relational Mapper > > http://www.sqlalchemy.org/ > > To post example code, please provide an MCVE: Minimal, Complete, and > Verifiable Example. See http://stackoverflow.com/help/mcve for a full > description. > --- > You received this message because you are subscribed to the Google Groups > "sqlalchemy" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at https://groups.google.com/group/sqlalchemy. > For more options, visit https://groups.google.com/d/optout. -- SQLAlchemy - The Python SQL Toolkit and Object Relational Mapper http://www.sqlalchemy.org/ To post example code, please provide an MCVE: Minimal, Complete, and Verifiable Example. See http://stackoverflow.com/help/mcve for a full description. --- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout.
