在下面的代码中,我需要声明my_attr
为除 None
.
我应该换Any
什么?
from pydantic import BaseModel
from typing import Any
class MyClass(BaseModel):
my_attr: Any
在下面的代码中,我需要声明my_attr
为除 None
.
我应该换Any
什么?
from pydantic import BaseModel
from typing import Any
class MyClass(BaseModel):
my_attr: Any
为此,您需要使用验证器,例如:
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。