Thank you so much to take the time for helping me out.

Best wishes -
Asif Mahmud Shimon


On Thu, Jul 27, 2017 at 3:37 AM, Mike Bayer <mike...@zzzcomputing.com>
wrote:

> On Wed, Jul 26, 2017 at 5:22 PM, Asif Mahmud <ams.ee...@gmail.com> wrote:
> > So, doing it like this - parent =
> > collections.collection_adapter(self).owner_state.obj() where self is the
> > collection object. is it correct?
>
> here's how you test that:
>
> from sqlalchemy import *
> from sqlalchemy.orm import *
> from sqlalchemy.ext.declarative import declarative_base
>
> Base = declarative_base()
>
>
> class A(Base):
>     __tablename__ = 'a'
>     id = Column(Integer, primary_key=True)
>     bs = relationship("B")
>
>
> class B(Base):
>     __tablename__ = 'b'
>     id = Column(Integer, primary_key=True)
>     a_id = Column(ForeignKey('a.id'))
>
>
> from sqlalchemy.orm import collections
> a1 = A(bs=[B(), B(), B()])
>
> self = a1.bs
>
> parent = collections.collection_adapter(self).owner_state.obj()
>
> assert parent is a1
>
>
>
>
> >
> > Best wishes -
> > Asif Mahmud Shimon
> >
> >
> > On Thu, Jul 27, 2017 at 3:16 AM, Mike Bayer <mike...@zzzcomputing.com>
> > wrote:
> >>
> >> On Wed, Jul 26, 2017 at 5:15 PM, Asif Mahmud <ams.ee...@gmail.com>
> wrote:
> >> > I walked through the dir of self and found this statement is the
> parent
> >> > object - self._sa_adapter.owner_state.object . Is it safe to use this
> >> > object
> >> > for making more queries inside append method?
> >>
> >> no, because _sa_adapter is private.  The collection_adapter() function
> >> should be used to access this attribute.
> >>
> >> >
> >> > Best wishes -
> >> > Asif Mahmud Shimon
> >> >
> >> >
> >> > On Thu, Jul 27, 2017 at 1:32 AM, Mike Bayer <clas...@zzzcomputing.com
> >
> >> > wrote:
> >> >>
> >> >>
> >> >>
> >> >> On Jul 26, 2017 1:18 PM, "Asif Mahmud" <ams.ee...@gmail.com> wrote:
> >> >>
> >> >> Hi,
> >> >> Is there a way to get/retrieve the parent object from a collection
> >> >> class's
> >> >> append/add method ?
> >> >>
> >> >>
> >> >> From the method, call im_self to get the collection object itself,
> then
> >> >> use collection_adapter (
> >> >>
> >> >> http://docs.sqlalchemy.org/en/latest/orm/collections.html?
> highlight=collection_adapter#sqlalchemy.orm.collections.collection_adapter
> >> >> ) to get the CollectionAdapter, then call adapter.owner_state.obj().
> >> >>
> >> >>
> >> >> I'd recommend passing the parent object around in the first place,
> >> >> however
> >> >> as the above is esoteric and also runs the chance of failing if the
> >> >> parent
> >> >> object has been garbage collected.
> >> >>
> >> >> --
> >> >> 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 a topic in
> the
> >> >> Google Groups "sqlalchemy" group.
> >> >> To unsubscribe from this topic, visit
> >> >> https://groups.google.com/d/topic/sqlalchemy/-z1_UZEgZ5g/unsubscribe
> .
> >> >> To unsubscribe from this group and all its topics, 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.
> >>
> >> --
> >> 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 a topic in the
> >> Google Groups "sqlalchemy" group.
> >> To unsubscribe from this topic, visit
> >> https://groups.google.com/d/topic/sqlalchemy/-z1_UZEgZ5g/unsubscribe.
> >> To unsubscribe from this group and all its topics, 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.
>
> --
> 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 a topic in the
> Google Groups "sqlalchemy" group.
> To unsubscribe from this topic, visit https://groups.google.com/d/
> topic/sqlalchemy/-z1_UZEgZ5g/unsubscribe.
> To unsubscribe from this group and all its topics, 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.

Reply via email to