I'm not able to reproduce the issue you describe. Below is an MCVE, can you please modify it to show the failure you are getting? The .foo attribute on B is returned:
from sqlalchemy import Column from sqlalchemy import create_engine from sqlalchemy import Integer from sqlalchemy import String from sqlalchemy.ext.declarative import AbstractConcreteBase from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.ext.declarative import declared_attr from sqlalchemy.orm import configure_mappers from sqlalchemy.orm import query_expression from sqlalchemy.orm import Session from sqlalchemy.orm import with_expression Base = declarative_base() class A(AbstractConcreteBase, Base): @declared_attr def foo(cls): return query_expression() class B(A): __tablename__ = "b" id = Column(Integer, primary_key=True) data = Column(String(50)) __mapper_args__ = {"polymorphic_identity": "b"} class C(A): __tablename__ = "c" id = Column(Integer, primary_key=True) __mapper_args__ = {"polymorphic_identity": "c"} configure_mappers() e = create_engine("sqlite://", echo=True) Base.metadata.create_all(e) session = Session(e) session.add(B(id=1, data='b data')) session.commit() b1 = session.query(A).options(with_expression(A.foo, B.data + ' hi')).all()[0] assert b1.foo == "b data hi" On Wed, Mar 25, 2020, at 12:30 PM, Benjamin Beguin wrote: > Hi there, > > I'm facing an issue with the use of AbstractConcreteBase class and a > @declarred_attr returning a query_expression() > > > class A(AbstractConcreteBase, Base): > @declared_attr > def foo(cls): > return query_expression() > > > class B(A): > ... > > > class C(A): > ... > > > objects = db.session.query(A).options(with_expression(A.foo, > my_expression)).all() > > > > B and C objects returned have the property foo but it is None > The generated SQL query returns a value for the expression but the mapping > seems to be not effective > > Am I doing something wrong ? > > -- > 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 view this discussion on the web visit > https://groups.google.com/d/msgid/sqlalchemy/a071d191-73d1-4519-8625-068903b3950c%40googlegroups.com > > <https://groups.google.com/d/msgid/sqlalchemy/a071d191-73d1-4519-8625-068903b3950c%40googlegroups.com?utm_medium=email&utm_source=footer>. -- 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 view this discussion on the web visit https://groups.google.com/d/msgid/sqlalchemy/619ba3a9-b01b-4fe9-8774-002418feb8d0%40www.fastmail.com.