Как получить экземпляры модели SqlAlchemy из объекта Select? - PullRequest
0 голосов
/ 29 марта 2019

В SqlAlchemy, с учетом объекта Select, как правильно получить экземпляр (или экземпляры) модели с этим объектом?

Например, когда мне нужен экземпляр для самой последней записи в таблице, я делаю что-то неуклюжее, как это, для подкласса модели SqlAlchemy для таблицы:

Base = DeclarativeBase()

class TableModel(Base)
    ...

class MyTableModel(TableModel)

    @classmethod
    def get_most_recent(cls):
        qry_object = sqlalchemy.select([cls.__table__]
            ).order_by(cls.file_dt.desc()
            ).limit(1)

        return cls.instance_from_query(qry_object)

    @classmethod
    def instance_from_query(cls, qry_object):
        session = get_session()
        result = session.execute(qry_object).fetchone()
        result_dct = dict((k, v) for k, v in result.items())
        instance = cls(**result_dct)
        return instance

$ hat это правильный способ сделать это? Это не может быть лучше, но я не нашел правильный путь в документах или коде SqlAlchemy.

(И, чтобы получить экземпляры для запроса, возвращающего количество строк? Скажем, most_recent_three, с select(...).limit(3)?)

Спасибо.

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