“FastAPIError:响应字段的参数无效!提示:检查 <class 'typing._UnionGenericAlias'> 是否是有效的 pydantic 字段类型”

bip*_*ter 6 python pydantic fastapi

我的 FastAPI 应用程序有以下 Pydantic 架构。

在以下架构中,每当我将其ParameterSchema作为 的架构验证器时params,它都会出现以下错误:

fastapi.exceptions.FastAPIError: Invalid args for response field! Hint: check that <class 'typing._GenericAlias'> is a valid pydantic field type
Run Code Online (Sandbox Code Playgroud)

我不知道发生了什么事!

class ParameterSchema(BaseModel):
    expiryDate = Optional[datetime]

    class Config:
        arbitrary_types_allowed = True


class RequestProvisioningEventData(BaseModel):
    some_attribute: List[str]
    other_attribute: Optional[List[str]] = []
    bool_attribute: bool
    params: ParameterSchema

    class Config:
        use_enum_values = True
Run Code Online (Sandbox Code Playgroud)

Gin*_*pin 6

这是因为expiryDate分配了( =) 一个值

class ParameterSchema(BaseModel):
    expiryDate = Optional[datetime]
Run Code Online (Sandbox Code Playgroud)

它应该使用类型提示( :):

class ParameterSchema(BaseModel):
    expiryDate: Optional[datetime]
Run Code Online (Sandbox Code Playgroud)

注意使用冒号:作为类型提示,而不是 equals =