问题:responseModel 被忽略。 FastApi (python 3.8)

Problem: responseModel being ignored. FastApi (python 3.8)

我正在使用 FastApi,我的 responseModel 被忽略了。我试图在响应中不 return 密码字段。为什么 FastApi 会忽略我的响应模型定义?

这是我的 api post 方法:

@app.post("/users")
def create_users(user: schemas.UserCreate, db: Session = Depends(get_db), response_model=schemas.UserOut):
    new_user = models.User(**user.dict())
    print(new_user)
    db.add(new_user)
    db.commit()
    db.refresh(new_user)
    return new_user

这里是 postman return 我不应该看到密码字段:

{
    "password": "sdmfsladfj",
    "email": "hon99@gmail.com",
    "created_at": "2022-02-05T00:17:11.010020-06:00",
    "id": 10
}

这是我的 schemas.py 文件中的 responseModel 定义:

class UserOut(BaseModel):
    id: int
    email: EmailStr
    created_at: datetime

    class Config:
        orm_mode = True




 anyio==3.5.0
    asgiref==3.5.0
    click==8.0.3
    dnspython==2.2.0
    email-validator==1.1.3
    emailvalidator==0.3
    fastapi==0.73.0
    greenlet==1.1.2
    h11==0.13.0
    idna==3.3
    psycopg2-binary==2.9.3
    pydantic==1.9.0
    sniffio==1.2.0
    SQLAlchemy==1.4.31
    sqlalchemy2-stubs==0.0.2a19
    sqlmodel==0.0.6
    starlette==0.17.1
    typing_extensions==4.0.1
    utcnow==0.3.0
    uvicorn==0.17.1

response_model 是视图装饰器的参数(因为它是关于视图本身的元数据),而不是视图 function 的参数(它接受如何处理视图):

@app.post("/users", response_model=schemas.UserOut):
async def ...