fastapi, столкнулся с проблемой, не пойму как правильно подгружать relationship'ы в запросе, в flask-sqlalchemy они подгружались автоматически, т.е я мог получать доступ к сколь-угодно далеким от основной модели данным (например User.roles[0].role.linked_permissions), сейчас же я понимаю только как подгрузить первый relationship который связан с запрашиваемой моделью (через joinedload или selectinload)
При попытке углубиться дальше возникает ошибка: sqlalchemy.exc.MissingGreenlet: greenlet_spawn has not been called; can't call await_only() here. Was IO attempted in an unexpected place? (Background on this error at: https://sqlalche.me/e/20/xd2s)
gist: https://gist.github.com/efinskiy/74140b130dd611f1faa40ce2cbcc2dfb
каждый день кто-то да с этим сталкивается
для более глубоких уровней просто в цепочку пишешь подгрузки
Пример можешь написать? Не получалось просто делать как ты говоришь
joinedload(Parent.children).subqueryload(Child.subelements)
Нет, ты просто используешь асинхронную алхимию, а раньше использовал синхронную
https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html
Обсуждают сегодня