diff --git a/src/generators/python/presets/Pydantic.ts b/src/generators/python/presets/Pydantic.ts index 7d787bb18e..2d60560851 100644 --- a/src/generators/python/presets/Pydantic.ts +++ b/src/generators/python/presets/Pydantic.ts @@ -18,14 +18,20 @@ const PYTHON_PYDANTIC_CLASS_PRESET: ClassPresetType = { ); }, property(params) { - const type = params.property.required - ? params.property.property.type - : `Optional[${params.property.property.type}]`; - const alias = params.property.property.originalInput['description'] - ? `alias='''${params.property.property.originalInput['description']}'''` - : ''; - - return `${params.property.propertyName}: ${type} = Field(${alias})`; + const { propertyName, required, property } = params.property; + const type = required ? property.type : `Optional[${property.type}]`; + const description = property.originalInput['description']; + const alias = description ? `alias='''${description}'''` : ''; + const defaultValue = required ? '' : 'default=None'; + return ( + alias && defaultValue + ? `${propertyName}: ${type} = Field(${alias}, ${defaultValue})` + : alias + ? `${propertyName}: ${type} = Field(${alias})` + : defaultValue + ? `${propertyName}: ${type} = Field(${defaultValue})` + : '' + ); }, ctor: () => '', getter: () => '',