[英]Pydantic field does not take value
在尝试命名 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'}
这对我来说完全没有意义,有人可以解释发生了什么吗?
非常感谢
从文档中:
Class 变量以下划线开头,属性以打字方式注释
typing.ClassVar
将自动从 model 中排除。
一般来说, append是一个下划线以避免冲突,因为前导下划线被视为 dunder(魔术)成员或私有成员: _schema
➡ schema_
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.