FastAPI: where to set exclude_unset=True?

Viewed 3177

I am learning fastAPI and don't know how to update user info partially. The given solution is to set exclude_unset=True, but I don't know where to write it. Here are my pieces of code:

routers/user.py:

@router.patch('/{id}', status_code=status.HTTP_202_ACCEPTED)
def update_user(id, request: sUser, db: Session = Depends(get_db)):
    user = db.query(mUser).filter(mUser.id == id)

    if not user.first():
        raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail=f'The User with the id {id} is not found')

    user.update(request.dict(exclude={'createdAt'}, exclude_unset=True))

    db.commit()

    return user.first()

PS exclude = {'createdAt'} works, but exclude_unset=True doesn't..

Here is my user schema:

schemas.py

class User(BaseModel):
    username: str
    dob: datetime.date
    password: str
    createdAt: datetime.datetime
2 Answers
Related