Как получить данные таблицы из объекта метки в 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
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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