不通过别名分配 Pydantic 字段

Assigning Pydantic Fields not by alias

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

您需要使用allow_population_by_field_name model config选项,默认为False

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