我有 2 个 Pydantic 型号 (var1和var2)。该方法的输入PostExample可以接收第一模型或第二模型的数据。使用Union有助于解决此问题,但在验证过程中,它会引发第一个模型和第二个模型的错误。
如何做到在填写字段时出现错误时,仅针对某个模型返回验证器错误,而不是同时返回两个模型?(如果有帮助的话,可以通过字段A的长度来区分模型)。
主要.py
@app.post("/PostExample")
def postExample(request: Union[schemas.var1, schemas.var2]):
result = post_registration_request.requsest_response()
return result
Run Code Online (Sandbox Code Playgroud)
模式.py
class var1(BaseModel):
A: str
B: int
C: str
D: str
class var2(BaseModel):
A: str
E: int
F: str
Run Code Online (Sandbox Code Playgroud) 我需要一个covars包含未知数量条目的变量,其中每个条目都是三个不同的自定义模型之一Pydantic。在本例中,每个条目都描述了我的应用程序的一个变量。
具体来说,我想要covars以下形式。这里显示了三个条目,即variable1、variable2和variable3,代表三种不同类型的条目。但是,在部署时,应用程序必须允许接收三个以上的条目,并且并非所有条目类型都需要出现在请求中。
covars = {
'variable1': # type: integer
{
'guess': 1,
'min': 0,
'max': 2,
},
'variable2': # type: continuous
{
'guess': 12.2,
'min': -3.4,
'max': 30.8,
},
'variable3': # type: categorical
{
'guess': 'red',
'options': {'red', 'blue', 'green'},
}
}
Run Code Online (Sandbox Code Playgroud)
我已成功创建三种不同的条目类型作为三个单独的Pydantic模型
import pydantic
from typing import Set, Dict, Union
class IntVariable(pydantic.BaseModel):
guess: int
min: int
max: int
class ContVariable(pydantic.BaseModel):
guess: float
min: float
max: …Run Code Online (Sandbox Code Playgroud)