Абстрактные гибридные свойства в SQLAlchemy - PullRequest
1 голос
/ 08 мая 2020

Я моделирую существующую структуру базы данных в SQLAlchemy и хочу сделать что-то вроде следующего:

class Employee(AbstractConcreteBase, Base):

    @hybrid_property
    def daily_wage(self):
        pass

class HourlyEmployee(Employee):
    __tablename__ = "HourlyEmployee"

    __mapper_args__ = {
        "polymorphic_identity": "hourly",
        "concrete": True,
    }

    id = Column(Integer, primary_key=True)
    hourly_wage = Column(Float, nullable=False)

    @Employee.daily_wage.overrides.getter
    def daily_wage(self):
        return self.hourly_wage * 8


class DailyEmployee(Employee):
    __tablename__ = "DailyEmployee"

    __mapper_args__ = {
        "polymorphic_identity": "daily",
        "concrete": True,
    }

    id = Column(Integer, primary_key=True)

    wage = Column(Float, nullable=False)

    @Employee.daily_wage.overrides.getter
    def daily_wage(self):
        return self.wage


Тогда я хотел бы запросить вот так:

session.query(Employee).filter(Employee.daily_wage < 8.0).all()

Однако, это не работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...