• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

pydantic.error_wrappers.ValidationError 오류가 떠요

23.10.05 23:04 작성 조회수 777

0

지금 orm적용 get단일 조회 api 강의를 보고있는데 코드를 똑같이 쳤는데 마지막에 swagger 에서 입력 하면 pydantic.error_wrappers.ValidationError: 3 validation errors for ToDoSchema

id

field required (type=value_error.missing)

content

field required (type=value_error.missing)

is_done

field required (type=value_error.missing)

이 오류가 뜹니다..ㅠㅠ 무슨 오류인가요

답변 1

답변을 작성해보세요.

1

안녕하세요! ToDoSchema에 필수값이 전달되지 않았기 때문에 발생하는 에러로 확인됩니다. 핸들러에서 리턴하는 코드에 ToDoSchema.from_orm(todo) 부분이 잘 적용되어 있나 확인 부탁드립니다.

@app.get("/todos/{todo_id}", status_code=200)
def get_todo_hendler(
todo_id: int,
session: Session = Depends(get_db),
) -> ToDoSchema:
todo: ToDo | None = get_todo_by_todo_id(session=session, todo_id = todo_id)
if todo:
return ToDoSchema.from_orm(todo)
raise HTTPException(status_code=404, detail="찾을 수 없습니다.") 제 코드는 이렇습니다.

get_todo_by_todo_id 함수 코드는 어떻게 작성하셨나요?

def get_todo_by_todo_id(session:Session, todo_id: int) -> ToDo | None:
return session.scalars(select(ToDo).where(ToDo.id == todo_id))
이렇게 작성했습니다

 

 

scalars -> scalar로 변경 부탁드립니다!

scalars()는 조건문에 해당하는 데이터를 조회해서 ScalarResult를 반환합니다. scalar()는 반환된 ScalarResult에 데이터가 있는 경우 하나의 python 객체를 반환하고 데이터가 없는 경우 None을 반환하는 메소드입니다.