SQLAlchemy ORM-其他表达式的引用表达式

时间:2018-08-30 16:05:15

标签: python mysql sqlalchemy

我正在研究一些旧系统的重构,我们目前有类似的东西:

class NominalEntry(base.Base):
    paid_on = Column('date', DateTime, default=datetime.now)

class Payment(base.Base):

    nominal_entries = relationship(
        NominalEntry, lazy='joined', ...)

    @hybrid_property
    def first_nominal_entry(self):
        if self.nominal_entries:
            return self.nominal_entries[0]
        return None

并且我想查询paid_on上的字段NominalEntry,所以我创建了类似的内容:

    @hybrid_property
    def paid_on(self):
        self.first_nominal_entry.paid_on

我想实现类似的东西:

    @paid_on.expression
    def paid_on(cls):
        return select([NominalEntry.date]).where(
            DBALNominalEntry.payment_id == cls.id
        ).limit(1).label('paid_on')

但我想引用first_nominal_entry。而是创建一个新查询。

有人知道吗? 我知道我可以将nominal_entries转换为关系1to1,但是由于奇怪的依赖关系,目前我不被允许

0 个答案:

没有答案