不通过别名分配Pydantic字段



如何在不使用别名的情况下创建pydantic对象?

from pydantic import BaseModel, Field
class Params(BaseModel):
var_name: int = Field(alias='var_alias')
Params(var_alias=5) # works
Params(var_name=5) # does not work

在pydantic 2.0版本中,此行为已更新为使用model_config选项,默认情况下为False

from pydantic import BaseModel, Field, ConfigDict

class Params(BaseModel):
var_name: int = Field(alias='var_alias')
model_config = ConfigDict(
populate_by_name=True,
)
Params(var_alias=5)  # works
Params(var_name=5)   # works

对于pydantic1.x,您需要使用allow_population_by_field_name模型配置选项。

from pydantic import BaseModel, Field

class Params(BaseModel):
var_name: int = Field(alias='var_alias')
class Config:
allow_population_by_field_name = True

Params(var_alias=5)  # works
Params(var_name=5)   # works

最新更新