Назначение полей Pydantic не по псевдониму

#python #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
 

Ответ №1:

Вам нужно использовать параметр allow_population_by_field_name конфигурации модели, который 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