【发布时间】:2022-09-23 21:21:02
【问题描述】:
在尝试命名 Pydantic 字段 schema 时,我收到以下错误:
NameError: Field name \"schema\" shadows a BaseModel attribute; use a different field name with \"alias=\'schema\'\".
在the documentation 之后,我尝试使用别名来避免冲突。请参见下面的代码:
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\'}
这对我来说完全没有意义,有人可以解释发生了什么吗?
非常感谢
-
前导下划线表示 Python 中的私有字段。我建议附加它:
schema_: ... -
谢谢@MaximilianBurszley,它似乎奏效了。如果你愿意回答这个问题,我会接受。