Estoy usando FastApi y mi modelo de respuesta está siendo ignorado. Estoy intentando NO devolver el campo de contraseña en la respuesta. ¿Por qué FastApi ignora mi definición de modelo de respuesta?
Aquí está mi método de publicación de API:
@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_useraquí está el retorno del cartero No debería ver el campo de contraseña:
{ "password": "sdmfsladfj", "email": "hon99@gmail.com", "created_at": "2022-02-05T00:17:11.010020-06:00", "id": 10 }Aquí está mi definición de modelo de respuesta en mi archivo schemas.py:
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.1response_model es un argumento para el decorador de vistas (ya que son metadatos sobre la vista en sí), no para la función de vista (que toma argumentos que son necesarios para procesar la vista):
@app.post("/users", response_model=schemas.UserOut): async def ...