Задать вопрос
nnnLik
@nnnLik
Capybara god

Почему Depends возвращает объект Depend вместо вызова функции в Fastapi?

Хочу получить асинхронную сессию вне контроллера и передать ее дальше в репозиторий. Столкнулся со следующей ошибкой


File "/usr/src/app/src/modules/core/IRepository.py", line 29, in find_all
result = await self.session.execute(select(self.model))
^^^^^^^^^^^^^^^^^^^^
AttributeError: 'Depends' object has no attribute 'execute'


Вот мой код

# file_1
def get_user_server_repo(
    session: AsyncSession = Depends(get_async_session),
) -> UserServerRepository:
    return UserServerRepository(model=UserServer, session=session)


#file_2
engine = create_async_engine(settings.database.DATABASE_URL)
async_session_maker = sessionmaker(
    engine,
    class_=AsyncSession,
    expire_on_commit=False,
)

async def get_async_session() -> AsyncGenerator[AsyncSession, None]:
    async with async_session_maker() as session:
        yield session


Если вставить print и попробовать вывести session то получу следующее

Depends(get_async_session)
  • Вопрос задан
  • 353 просмотра
Подписаться 1 Простой 7 комментариев
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы