Hello,


I have Locality model with 'path' property to get path from 'root' of tree to 
current item, everything works ok, but

I can't get result as Locality instance list..

When I use 
*'*object_session(self).query(Locality).from_statement(q).order_by(Locality.id)'
 I get 

sqlalchemy.exc.ArgumentError: from_statement accepts text(), select(), and 
union() objects only.


How can I adopt results to Locality model?



class Locality(Base):
    __tablename__ = 'localities'

    __table_args__ = {'schema': SYSTEM_SCHEMA}

    id = Column(Integer, primary_key=True)
    parent_id = Column(Integer, ForeignKey(SYSTEM_SCHEMA + '.localities.id'))
    name = Column(UnicodeText, nullable=False)
    type = Column(Integer, nullable=False)

    @property
    def path(self):
        def get_locality_path_q(locality_id):
            top_q = select([
                Locality.id,
                Locality.parent_id,
                Locality.name,
                Locality.type,
            ]).\
                where(Locality.id == locality_id).\
                cte(recursive=True)

            parents = aliased(top_q)

            locality_alias = aliased(Locality)

            q = top_q.union_all(
                select([
                    locality_alias.id,
                    locality_alias.parent_id,
                    locality_alias.name,
                    locality_alias.type
                ]).select_from(join(locality_alias, parents, locality_alias.id 
== parents.c.parent_id))
            )

            # return object_session(self).query(q).order_by(q.c.id)
            return 
object_session(self).query(Locality).from_statement(q).order_by(Locality.id)

        return get_locality_path_q(self.id)

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sqlalchemy/78205703-4631-4c1a-aa13-f89fc6f06feb%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to