Skip to content

Commit 0d605d0

Browse files
authored
Update nested model partial update docs example. (#433)
1 parent 8f7653c commit 0d605d0

File tree

1 file changed

+21
-3
lines changed

1 file changed

+21
-3
lines changed

docs/index.md

+21-3
Original file line numberDiff line numberDiff line change
@@ -390,18 +390,36 @@ class SubModel(BaseModel):
390390
flag: bool = False
391391

392392

393-
class Settings(BaseSettings):
393+
class SettingsPartialUpdate(BaseSettings):
394394
model_config = SettingsConfigDict(
395395
env_nested_delimiter='__', nested_model_default_partial_update=True
396396
)
397397

398-
nested_model: SubModel = SubModel()
398+
nested_model: SubModel = SubModel(val=1)
399+
400+
401+
class SettingsNoPartialUpdate(BaseSettings):
402+
model_config = SettingsConfigDict(
403+
env_nested_delimiter='__', nested_model_default_partial_update=False
404+
)
405+
406+
nested_model: SubModel = SubModel(val=1)
399407

400408

401409
# Apply a partial update to the default object using environment variables
402410
os.environ['NESTED_MODEL__FLAG'] = 'True'
403411

404-
assert Settings().model_dump() == {'nested_model': {'val': 0, 'flag': True}}
412+
# When partial update is enabled, the existing SubModel instance is updated
413+
# with nested_model.flag=True change
414+
assert SettingsPartialUpdate().model_dump() == {
415+
'nested_model': {'val': 1, 'flag': True}
416+
}
417+
418+
# When partial update is disabled, a new SubModel instance is instantiated
419+
# with nested_model.flag=True change
420+
assert SettingsNoPartialUpdate().model_dump() == {
421+
'nested_model': {'val': 0, 'flag': True}
422+
}
405423
```
406424

407425
## Dotenv (.env) support

0 commit comments

Comments
 (0)