在尝试命名Pydantic字段schema时,我收到了以下错误:
NameError: Field name "schema" shadows a BaseModel attribute; use a different field name with "alias='schema'".在文献资料之后,我试图使用别名来避免冲突。见下面的代码:
from pydantic import StrictStr, Field
from pydantic.main import BaseModel
class CreateStreamPayload(BaseModel):
name: StrictStr
_schema: dict[str: str] = Field(alias='schema')在尝试以下列方式实例化CreateStreamPayload时:
a = CreateStreamPayload(name= "joe",
_schema= {"name": "a name"})生成的实例只有一个name值,没有其他值。
a.dict()
{'name': 'joe'}这对我来说是完全没有意义的,有人能解释一下发生了什么吗?
非常感谢
发布于 2022-09-23 13:21:02
来自文献资料
类变量(以下划线和带有
typing.ClassVar注释的属性开头)将自动排除在模型中。
通常,添加下划线以避免冲突,因为引导下划线被看作是➡(魔术)成员或私有成员:_schema➡schema_。
https://stackoverflow.com/questions/73828037
复制相似问题