相关疑难解决方法(0)

根据字段的值使用不同的 Pydantic 模型

我有 2 个 Pydantic 型号 (var1var2)。该方法的输入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)

python pydantic fastapi

14
推荐指数
1
解决办法
2万
查看次数

如何为多个不同对象生成 Pydantic 模型

我需要一个covars包含未知数量条目的变量,其中每个条目都是三个不同的自定义模型之一Pydantic。在本例中,每个条目都描述了我的应用程序的一个变量。

具体来说,我想要covars以下形式。这里显示了三个条目,即variable1variable2variable3,代表三种不同类型的条目。但是,在部署时,应用程序必须允许接收三个以上的条目,并且并非所有条目类型都需要出现在请求中。

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)

python validation nested pydantic fastapi

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

fastapi ×2

pydantic ×2

python ×2

nested ×1

validation ×1