Объединить несколько таблиц с фильтрацией в модели sqlalchemy
Пытаюсь добавить связь в модель через primaryjoin c заранее отфильтрованными результатами
class Product(Base):
attribute_links = relationship(
'ProductAttributeValue',
primaryjoin='and_('
'Product.id == ProductAttributeValue.product_id,'
'ProductAttributeValue.attribute_id == Attribute.id,'
'ProductAttributeValue.deleted.is_(False),'
'Attribute.deleted.is_(False))',
)
Это работает, но если перебирать выборку товаров в цикле, и обращаться к свойству attribute_links, делается отдельный запрос для каждого обращения. Поэтому хочется сделать prefetch. Для этого в sqlalchemy, насколько я знаю используется атрибут lazy. Но варианты joined или subquery дают ошибку. Как в данном случае сделать prefetch нужных мне таблиц?