【问题标题】:Generate a pydantic model from pydantic object从 pydantic 对象生成一个 pydantic 模型
【发布时间】:2021-11-03 12:18:45
【问题描述】:

是否可以从 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?

如果您想了解用例。我想用StreamlitStreamlit-pydantic 构建一个网络应用程序。后者从 pydantic 模型中重新生成 UI-inputmask,如下所示:

instance_of_pydantic_model=sp.pydantic_form(model=pydanticModel, key='some key')

See it in action

这会导致多页面应用程序出现问题,即在切换到另一个页面后,Input_mask 将不会显示任何用户输入。

【问题讨论】:

    标签: python streamlit pydantic


    【解决方案1】:

    如果你正确使用 create_model 函数,它可以工作:

    dynamic_Model=create_model("Parameters",**vars(instance))
    

    使用 Streamlit pydantic,输​​入掩码保持一致,即使是可选字段,现在填充了一个值。

    【讨论】:

      猜你喜欢
      • 2020-09-27
      • 2022-10-04
      • 2021-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-04
      • 2022-01-15
      • 2021-09-06
      相关资源
      最近更新 更多