SQLAlchemy. Я пытаюсь получить объект, который записал в бд, но почему-то получаю пустой список

Рейтинг: 0Ответов: 1Опубликовано: 04.05.2023
async def insert_order(item: CreateOrderDto, session: AsyncSession):
    query = insert(order).values(**item.get_order())
    result = await session.execute(query)
    return result.all()

Я пишу простое приложение на python, использую framework FastAPI. Моя цель: записать переданный объект в бд и вернуть этот объект обратно; но я не могу получить его id, т.к. получаю пустой список.

Ответы

▲ 2Принят

Надо было к query добавить функцию returning(). В итоге решение выглядит так:

async def insert_order(item: CreateOrderDto, session: AsyncSession):
    query=insert(order).values(**item.get_order()).returning(literal_column('*'))
    result = await session.execute(query)
    return result.one()