FastAPI中Pydantic模型无法识别属性、Swagger文档请求体为空问题
问题原因
你定义Pydantic模型字段时使用了错误写法,直接将字段赋值为类型本身,而非Python标准的类型标注语法:
- 错误写法
email = str的作用是将email设为类的普通属性,值为str类对象,Pydantic不会将其识别为模型字段,自然不会纳入schema生成逻辑 - 正确的字段定义需要用冒号做类型标注:
email: str,只有这种写法才会被Pydantic扫描识别为模型字段
修复方法
修改schemas.py文件中的模型字段定义,将所有赋值为类型的写法替换为类型标注即可:
import pydantic as _pydantic import datetime as _dt class _UserBase(_pydantic.BaseModel): email: str class UserCreate(_UserBase): hashed_password: str class Config: orm_mode = True
修复后重启服务,接口会返回包含email、hashed_password字段的完整schema,Swagger文档也会正常显示对应的请求体结构。
内容的提问来源于stack exchange,提问作者Hakan
相关产品推荐
相关产品推荐

