Thanks! 
make_transient_to_detached did the trick! 

ill add the answer to my question. 

On Friday, 2 March 2018 11:56:30 UTC-5, Mike Bayer wrote:
>
> please add an answer to your stackoverflow question as well 
>
> On Fri, Mar 2, 2018 at 11:55 AM, Mike Bayer <mik...@zzzcomputing.com 
> <javascript:>> wrote: 
> > On Fri, Mar 2, 2018 at 11:55 AM, Harshvardhan Gupta 
> > <harsh...@gmail.com <javascript:>> 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+...@googlegroups.com <javascript:>. 
> >> To post to this group, send email to sqlal...@googlegroups.com 
> <javascript:>. 
> >> 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.

Reply via email to