Объединить несколько таблиц с фильтрацией в модели 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 нужных мне таблиц?


Ответы (0 шт):