繁体   English   中英

Pydantic 领域没有价值

[英]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(魔术)成员或私有成员: _schemaschema_

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM