【发布时间】:2021-01-25 11:29:14
【问题描述】:
我有两个这样的 pydantic 类。
class Parent(BaseModel):
id: int
name: str
email: str
class ParentUpdate(BaseModel):
id: Optional[int]
name: Optional[str]
email: Optional[str]
这两者实际上是相同的,但 Parent 类使所有字段都成为必需的。
我想在 FastAPI 中使用 Parent 类作为 POST 请求正文,因此所有字段都应该是必需的。但我想将后者用于 PUT 请求正文,因为用户可以设置选择性字段并且其余字段保持不变。
我看过Required Optional Fields,但它们与我想要做的不对应。
如果有办法我可以继承ParentUpdate 中的Parent 类并修改Parent 中的所有字段以使它们成为Optional,这将减少混乱。此外,Parent 类中存在一些验证器,我必须在 ParentUpdate 类中重写它们,我也想避免。
有没有办法做到这一点?谢谢。
【问题讨论】: