(Новое оповещение пользователя SQLAlchemy) У меня есть три таблицы: человек, почасовая ставка лиц, начинающаяся с определенной даты, и ежедневная отчетность. Я ищу правильный способ иметь стоимость для временной базы почасовой ставки лиц в этот день.
Да, я мог бы вычислить значение во время создания и иметь это как часть модели, но подумать об этом как пример суммирования более сложных данных за занавеской. Как вычислить Time.cost? Это гибрид_propery, column_property или что-то совершенно другое?
class Person(Base):
__tablename__ = 'person'
personID = Column(Integer, primary_key=True)
name = Column(String(30), unique=True)
class Payrate(Base):
__tablename__ = 'payrate'
payrateID = Column(Integer, primary_key=True)
personID = Column(Integer, ForeignKey('person.personID'))
hourly = Column(Integer)
starting = Column(Date)
__tableargs__ =(UniqueConstraint('personID', 'starting',
name='uc_peron_starting'))
class Time(Base):
__tablename__ = 'entry'
entryID = Column(Integer, primary_key=True)
personID = Column(Integer, ForeignKey('person.personID'))
workedon = Column(Date)
hours = Column(Integer)
person = relationship("Person")
def __repr__(self):
return "<{date} {hours}hrs ${0.cost:.02f}>".format(self,
date=self.workedon.isoformat(), hours=to_hours(self.hours))
@property
def cost(self):
'''Cost of entry
'''
## This is where I am stuck in propery query creation
return self.hours * query(Payrate).filter(
and_(Payrate.personID==personID,
Payrate.starting<=workedon
).order_by(
Payrate.starting.desc())