在 FastAPI 应用程序中处理有条件要求的参数的最佳方法是什么?
What is the best way to handle conditionally required arguments in a FastAPI app?
我正在开发 FastAPI 应用程序。我有以下架构
class Address(BaseModel):
address_string: str = Field(None)
address_street: str = Field(None)
addres_number: str = Field(None)
如果 address_street 和 addres_number 不存在,我希望有条件地要求字段 address_string,反之亦然,address_street 和 address_number如果 address_street 不存在,则为必填项。
目前,我通过将所有字段设为可选并使用 root_validator 检查一致性来管理此问题,并在相关字段的描述中记录此条件要求。
是否有更简洁的方法来管理 FastAPI 上的这个内置功能?
根验证器或可选必填字段上的验证器是最佳解决方案。
关于密码的类似示例 here。
我正在开发 FastAPI 应用程序。我有以下架构
class Address(BaseModel):
address_string: str = Field(None)
address_street: str = Field(None)
addres_number: str = Field(None)
如果 address_street 和 addres_number 不存在,我希望有条件地要求字段 address_string,反之亦然,address_street 和 address_number如果 address_street 不存在,则为必填项。
目前,我通过将所有字段设为可选并使用 root_validator 检查一致性来管理此问题,并在相关字段的描述中记录此条件要求。
是否有更简洁的方法来管理 FastAPI 上的这个内置功能?
根验证器或可选必填字段上的验证器是最佳解决方案。
关于密码的类似示例 here。