загружается целый объект, но он нам в большинстве своем не нужен.
То есть если точнее, если там One to Many, и надо загрузить отдельный объект - то нужно загрузить полностью, он используется
А если там Many-to-Many, и список связанных объектов, то чтобы не создавать лишней нагрузки при большом количестве данных, и так как в принципе связанные объекты там не нужны, нужно возвращать просто айди связанных объектов.
Кто-то так делал?
Я недавно делал другое. Релейшн на кастомную выборку. Суть в том, что ты можешь сделать модель не только поверх таблицы, но поверх любого запроса. А дальше ты можешь эту модель юзать в релейшене
Это что-то похожее на hybrid_property, где property может SQL вызывать?
Вообще я бы советовал не пытаться оптмизировать то, что работает быстро. Только код зря усложнишь.
Может как-то так? class OnlyIdQuery(Query): def __init__(self, entities, session=None): super().__init__(entities, session) def all(self): return Query.all(self.options(load_only('id'))) relationship(..., lazy='dynamic', query_class=OnlyIdQuery)
О, спасибо. Как раз то, что нужно
Обсуждают сегодня