是否有可能从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?
如果你想知道用例。我想建立一个web应用程序与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,输入掩码保持一致,即使是可选字段,现在也用值填充。