SQLAlchemy ORM - ссылочное выражение из другого выражения - PullRequest
0 голосов
/ 30 августа 2018

Я работаю над рефакторингом какой-то устаревшей системы, и в настоящее время у нас есть что-то вроде:

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, но в настоящее время я не могу этого сделать, потому что странные зависимости

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