python - 从 pydantic 对象生成一个 pydantic 模型
问题描述
是否可以从 pydantic 模型的实例创建一个 pydantic 模型,以便保持这些值?像这样的东西:
from pydantic import create_model,BaseModel,Field
from typing import Optional
class ExampleModel(BaseModel):
some_text: str
optional_number: Optional[float]
instance=ExampleModel(some_text="foo")
dynamic_Model=create_model("Parameters",__config__=instance.Config)
dyn_instance=dynamic_Model()
print(instance)
print(dyn_instance) #this has no attributes so it's an empty line
print("Is it equal ? "+ str(dyn_instance == instance)) #can this be true?
如果您想知道用例。我想用Streamlit和Streamlit-pydantic构建一个网络应用程序。后者从 pydantic 模型中重新生成 UI-inputmask,如下所示:
instance_of_pydantic_model=sp.pydantic_form(model=pydanticModel, key='some key')
这会导致多页应用程序出现问题,即 Input_mask 在切换到另一个页面后不会显示任何用户输入。
解决方案
如果您正确使用 create_model 函数,它可以工作:
dynamic_Model=create_model("Parameters",**vars(instance))
使用 Streamlit pydantic,输入掩码保持一致,即使是可选字段,现在填充了一个值。
推荐阅读
- reactjs - 无法使用带有功能组件的 refs 从父级调用子函数
- drupal - 列出多种内容类型的数据
- boot - 从目录创建纯 uefi 可启动 iso
- c++ - 如何
使用 Base 和 Derived 对象默认初始化 std::vector? - javascript - React Native 添加多个表单 onPress 按钮和 onchangeText 问题
- php - 在 SQL 查询中获取日期
- macos - 在 macOS 的 SceneKit 中无法显示 stl 文件
- python - 如何隐藏按钮以及如何在其上进行新的选项卡重定向?
- apache-kafka - 如何通过kafka生产者通知用户到消费者进程
- r - mlr:在 CV 循环中检索 generateFilterValuesData 的输出