Как получить данные таблицы из объекта метки в sqlalchemy?Python

Программы на Python
Anonymous
Как получить данные таблицы из объекта метки в sqlalchemy?

Сообщение Anonymous »

Предположим, у меня есть следующий упрощенный пример:

Код: Выделить всё

from sqlalchemy.orm import DeclarativeBase, Mapped

class TableA(DeclarativeBase):
col_name = Mapped[str | None]
parent_id = Mapped[int]

class TableB(DeclarativeBase):
col_name = Mapped[str | None]
parent_id = Mapped[int]

class TableC(DeclarativeBase):
col_name = Mapped[str | None]
parent_id = Mapped[int]

MY_MAPPINGS = {
"a__col_name" : func.coalesce(TableA.col_name, "").label("some_col_name"),
"b__col_name" : func.coalesce(TableB.col_name, "").label("another__col_name"),
"c__col_name" : func.coalesce(TableC.col_name, "").label("third__col_name"),
}

def get_query(mapping: str, parent_id: int):
col = MY_MAPPINGS[mapping]
return select(col)
Все должно быть в порядке. Но что, если я захочу добавить фильтр к этому запросу для родительского_id, как мне это сделать? В идеале я хотел бы сделать что-то вроде

Код: Выделить всё

.filter(col.table.parent_id = parent_id)
Но col имеет тип sqlalchemy.sql.elements.Label, а col.table имеет значение None. Что мне здесь делать?

Подробнее здесь: https://stackoverflow.com/questions/784 ... sqlalchemy

Вернуться в «Python»