SQLAlchemy array_agg выдает - PullRequest
       0

SQLAlchemy array_agg выдает

0 голосов
/ 27 марта 2019

Я пытаюсь выполнить sqlalchemy-ize следующий запрос:

select feat.*, array_remove(array_agg(fa), null) as assets, array_remove(array_agg(fs), null) as styles 
              from features as feat
              LEFT JOIN feature_assets fa on feat.id = fa.feature_id
              LEFT JOIN feature_styles fs on feat.id = fs.feature_id
              where project_id = :projectId
              group by feat.id

То, что у меня есть, выдает ошибку типа:

sqlalchemy.exc.ArgumentError: Object <class 'FeatureStyle'> is not legal as a SQL literal value

для этого бита кода:

 db_session.query(
                [
                    Feature,
                    func.array_remove(func.array_agg(FeatureStyle), None),
                    func.array_remove(func.array_agg(FeatureAsset), None)
                 ]
            ).outerjoin(FeatureAsset)\
            .outerjoin(FeatureStyle)\
            .filter(Feature.project_id == projectId)\
            .group_by(Feature.id)

Необработанный запрос SQL работает .Есть ли какой-нибудь умный способ исправить этот запрос sqlalchemy?

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