如何在不使用别名的情况下创建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