Как решить «AttributeError: объект ‘Depends’ не имеет атрибута ‘query'» fastapi / python

#python #dependency-injection #crud #fastapi

#python #внедрение зависимостей #crud #fastapi

Вопрос:

Всякий раз, когда я отправляю post-запрос, подобный curl -X POST localhost:8000/api/search/86e0220a-e5ae-434c-aad1-c037a58885a9 моему бэкэнду, я получаю следующую ошибку: AttributeError: 'Depends' object has no attribute 'query'

мой fastapi_backend.py код:

 # Dependency
def get_db():
    db = SessionLocal()
    try:
        return db
    except Exception as e:
        print('Error: '   str(type(e)))
    finally:
        db.close()


@app.post("/api/search/{uuid}", response_model=schemas.ToClient)
def search(uuid:UUID, background_tasks: BackgroundTasks , db: Session = Depends(get_db)):
    print("/api/search")
    userRequest = crud.get_userRequest_by_uuid(db=db, uuid=uuid)
    background_tasks.add_task(search, userRequest)
    return schemas.ToClient(title="search started",text="let's go!")
 

мой crud.py:

 def get_userRequest_by_uuid(db: Session, uuid:UUID):
       return db.query(models.UserRequest).filter(models.UserRequest.uuid == uuid).first()
 

Кто-нибудь знает, в чем моя ошибка? Я предполагаю, что это связано с переменной db, но я застрял в поиске решения

Комментарии:

1. Я считаю , что это должно быть сказано yield db , а не return db .

2. Спасибо! Это имело значение!