Я пытаюсь выполнить 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?