Assigning Pydantic Fields not by alias

Viewed 2810

How can I create a pydantic object, without useing alias names?

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
1 Answers

You need to use allow_population_by_field_name model config option, which is False by default.

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
Related