Я моделирую существующую структуру базы данных в 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()
Однако, это не работает.