Как можно go о псевдонимах столбцов таблицы, загруженной с использованием joinedload
? Мой подход состоял в том, чтобы связать мои joinedload
с load_only
следующим образом:
session.query(TableA) \
.options(joinedload(TableA.table_b)
.load_only(TableB.colA.label('col_a_alias'))
) \
.all()
Однако я получаю следующую ошибку: TypeError: Boolean value of this clause is not defined
.
Причина, по которой мне это нужно, заключается в том, что основываясь на условии, я хочу перезаписать значения TableB.col_a_alias значениями TableB.colA. Это может быть достигнуто путем перебора объектов после запроса и установки атрибутов вручную. Однако было бы гораздо эффективнее, если бы я мог присвоить столбцам имя столбцов, которые я хочу перезаписать. Мне нужно сделать это в вызове options (), потому что я выкидываю результаты в схему Marshmallow, которая ожидает вложенные объекты.
Ответ
Решением было использование Время запроса SQL выражения как сопоставленные атрибуты .