python - Pydantic 中嵌套和继承模型的字段自定义
问题描述
我已经彻底搜索了这个查询的答案,但收效甚微。
使用 pydantic,以下示例中的ge=0
验证item_main
会顺利进行(根据说明:https ://pydantic-docs.helpmanual.io/usage/schema/#field-customisation ):
class SubCls(BaseModel):
item_sub: float = Field(...)
class MainCls(BaseModel):
item_main1: float = Field(...)
item_main2: SubCls
class Config:
fields = {'item_main1': {'ge': 0}}
但是,以下示例中ge=0
的嵌套验证item_sub
不起作用:
class SubCls(BaseModel):
item_sub: float = Field(...)
class MainCls(BaseModel):
item_main1: float = Field(...)
item_main2: SubCls
class Config:
fields = {'item_main2': {"item_sub":{'ge': 0}}}
SubCl
被继承时也不会MainCls
:
class SubCls(BaseModel):
item_sub: float = Field(...)
class MainCls(SubCls):
item_main1: float = Field(...)
class Config:
fields = {"item_sub":{'ge': 0}}
我想知道如何最好地将字段自定义应用于嵌套模型。当然,最优雅的方法是创建一个新SubCls
模型,并添加验证信息,但在我的用例中,这会导致模型数量过多。我会很感激任何帮助。
此查询已在 pydantic 的 github 论坛上交叉发布:https ://github.com/samuelcolvin/pydantic/discussions/3400 。
解决方案
推荐阅读
- mysql - Rails / MySQL:如何通过完整的“created_at”时间戳查询记录?
- javascript - 如何按列的顺序用单个字符串数组填充 3 列
- python - 如何重塑列表中的 numpy 数组并附加/扩展结果?
- sql - 循环之间混合的 Powershell 输出 - SQL 数据集
- javascript - MediaDevices.getUserMedia() 对 ios 的支持
- javascript - 使用组合 API 插件的 Vue 2 中的功能组件(正常工作时)出现未定义的侦听器错误
- python - 如何标记或给文本文档一个主题?
- python - Zappa AWS 静态文件问题
- python-3.x - python 中的函数如何访问在其块之外声明并且在其调用期间从未作为参数传递的值?
- node.js - 如何根据内容长度在pdfkit中生成水平线超过