SQLAlchemy colonne calculée

(Nouveau SQLAlchemy alerte utilisateur) j'ai trois tables: une personne, les personnes taux horaire de départ à une date précise, et tous les jours des rapports de temps. Je suis à la recherche de la bonne façon d'avoir le coût d'une base de Temps hors de la personnes taux horaire de la journée.

Oui, je pourrais calculer la valeur au moment de la création et que, dans le cadre du modèle, mais pensez à cela comme un exemple de synthèse de données plus complexe derrière le rideau. Comment puis-je calculer le Temps.coût? Est-il un hybrid_propery, un column_property ou quelque chose de complètement différent?

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())
InformationsquelleAutor Frustrated | 2013-06-26