Как получить желаемый результат от запроса к базе данных?
Я хочу получить из таблицы Task определённые записи, но получаю неожиданный результат
Функция:
@tasks_r.get('')
async def get_user_tasks(session: AsyncSession = Depends(get_async_session), user: User = Depends(current_user)):
query = select(Task).where(Task.c.user_id == user.id)
result = await session.execute(query)
return result
Результат:
{
"_row_getter": {},
"_memoized_keys": [
"_row_getter"
]
}
Искал ответ в интернете, все советуют заменить result на result.all(), но я получаю следующую ошибку:
ValueError: [TypeError('cannot convert dictionary update sequence element #0 to a sequence'), TypeError('vars() argument must have __dict__ attribute')]
Когда я создаю новую запись в таблице, всё работает исправно:
@tasks_r.post('')
async def add_new_user_task(new_task: TaskCreate, session: AsyncSession = Depends(get_async_session)):
stmt = insert(Task).values(**new_task.dict())
await session.execute(stmt)
await session.commit()
Ответы (1 шт):
Автор решения: vendorkont
→ Ссылка
вместо result.all()
в данном случае следует использовать result.mappings().all()