1

在下面的代码中,我需要声明my_attr None.

我应该换Any什么?

from pydantic import BaseModel
from typing import Any

class MyClass(BaseModel):
    my_attr: Any
4

1 回答 1

3

为此,您需要使用验证器,例如:

from pydantic import BaseModel, validator

class MyClass(BaseModel):
    my_attr: Any

    @validator('my_attr', always=True)
    def check_not_none(cls, value):
        assert value is not None, 'may not be None'
        return value

但这不太可能是您真正想要的,您最好使用联合并包含您允许的类型的详尽列表,例如Union[str, bytes, int, float, Decimal, datetime, date, list, dict, ...].

如果您只想使该字段成为必填项(但None仍然具有允许的值),则应该可以在 v1.2 之后,它应该在接下来的几天内发布。见samuelcolvin/pydantic#1031

于 2019-11-27T16:17:32.220 回答