please add an answer to your stackoverflow question as well On Fri, Mar 2, 2018 at 11:55 AM, Mike Bayer <mike...@zzzcomputing.com> wrote: > On Fri, Mar 2, 2018 at 11:55 AM, Harshvardhan Gupta > <harshsay...@gmail.com> wrote: >> I meant, do the query only when email is required, and not unless anything >> else is required. >> if I call merge(), the query is instantly emitted. I want it to be emitted >> only if an unloaded attribute is requested. > > make the object act like detached and expired, then associate with the > session: > > from sqlalchemy.orm.session import make_transient_to_detached > a1 = A(id=1) > make_transient_to_detached(a1) > s.add(a1) > > print("-------------------") > assert a1.data == "some data" > assert len(a1.bs) == 3 > > > > > >> >> On Friday, 2 March 2018 11:51:20 UTC-5, Mike Bayer wrote: >>> >>> On Fri, Mar 2, 2018 at 11:30 AM, Harshvardhan Gupta >>> <harsh...@gmail.com> wrote: >>> > There is no way to achieve what I want without doing the query? >>> > merge seems to do the whole query. >>> >>> you have a User row, and you want to load columns in that row, like >>> "full_name". How would you like to achieve that without emitting a >>> query? >>> >>> >>> >>> > I also have asked this question on stack overflow which talks about my >>> > use >>> > case : >>> > >>> > >>> > https://stackoverflow.com/questions/49062520/querying-properties-of-transient-models-in-sqlalchemy >>> > >>> > >>> > On Friday, 2 March 2018 11:27:31 UTC-5, Mike Bayer wrote: >>> >> >>> >> On Fri, Mar 2, 2018 at 11:21 AM, Harshvardhan Gupta >>> >> <harsh...@gmail.com> wrote: >>> >> > I also tried loading a related attribute , and it still returns None. >>> >> >>> >> >>> >> you need to merge the object: >>> >> >>> >> my_user = session.merge(my_user) >>> >> >>> >> that is your only option. E.g. do the query. >>> >> >>> >> > >>> >> > >>> >> > On Friday, 2 March 2018 11:00:47 UTC-5, Harshvardhan Gupta wrote: >>> >> >> >>> >> >> Thanks, I am able to call my object, but the attribute prints none: >>> >> >> >>> >> >> >>> >> >> E.g. my model is: >>> >> >> >>> >> >> class User(Dictifiable, db.Model, UserMixin): >>> >> >> __tablename__ = 'user' >>> >> >> >>> >> >> id = Column(Integer, Sequence('user_id_seq'), primary_key=True) >>> >> >> full_name = Column(String(50)) >>> >> >> >>> >> >> >>> >> >> And this is what I have done : >>> >> >> >>> >> >> `u_lazy = User(id=1)` >>> >> >> `db.session().enable_relationship_loading(u_lazy)` >>> >> >> when i try to print u_lazy.full_name, it shows null (it is non null >>> >> >> in >>> >> >> db >>> >> >> ) >>> >> >> >>> >> >> >>> >> >> On Friday, 2 March 2018 10:55:11 UTC-5, Mike Bayer wrote: >>> >> >>> >>> >> >>> On Fri, Mar 2, 2018 at 10:52 AM, Harshvardhan Gupta >>> >> >>> <harsh...@gmail.com> wrote: >>> >> >>> > Thanks for the reply. >>> >> >>> > >>> >> >>> > There is a guarantee that the user will exist ,why is why I want >>> >> >>> > to >>> >> >>> > prevent that extra db query. >>> >> >>> > >>> >> >>> > When I try to do enable relationship loading ,I get the error : >>> >> >>> > Scoped session has no attribute enable relationship loading. >>> >> >>> >>> >> >>> that's a scoped_session(), not a Session, access the Session by >>> >> >>> calling it: scoped_session().enable_relationship_loading(obj) >>> >> >>> >>> >> >>> > >>> >> >>> > -- >>> >> >>> > 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 sqlalchemy+...@googlegroups.com. >>> >> >>> > To post to this group, send email to sqlal...@googlegroups.com. >>> >> >>> > 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 sqlalchemy+...@googlegroups.com. >>> >> > To post to this group, send email to sqlal...@googlegroups.com. >>> >> > 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 sqlalchemy+...@googlegroups.com. >>> > To post to this group, send email to sqlal...@googlegroups.com. >>> > 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 sqlalchemy+unsubscr...@googlegroups.com. >> To post to this group, send email to sqlalchemy@googlegroups.com. >> 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 sqlalchemy+unsubscr...@googlegroups.com. To post to this group, send email to sqlalchemy@googlegroups.com. Visit this group at https://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout.