@@ -227,7 +227,7 @@ def __init__(self, settings_cls: type[BaseSettings], nested_model_default_partia
227227 else self .config .get ('nested_model_default_partial_update' , False )
228228 )
229229 if self .nested_model_default_partial_update :
230- for field_name , field_info in settings_cls .model_fields .items ():
230+ for field_name , field_info in settings_cls .__pydantic_fields__ .items ():
231231 alias_names , * _ = _get_alias_names (field_name , field_info )
232232 preferred_alias = alias_names [0 ]
233233 if is_dataclass (type (field_info .default )):
@@ -408,13 +408,13 @@ class Settings(BaseSettings):
408408 break
409409
410410 # This is here to make mypy happy
411- # Item "None" of "Optional[Type[Any]]" has no attribute "model_fields "
412- if not annotation or not hasattr (annotation , 'model_fields ' ):
411+ # Item "None" of "Optional[Type[Any]]" has no attribute "__pydantic_fields__ "
412+ if not annotation or not hasattr (annotation , '__pydantic_fields__ ' ):
413413 values [name ] = value
414414 continue
415415
416416 # Find field in sub model by looking in fields case insensitively
417- for sub_model_field_name , f in annotation .model_fields .items ():
417+ for sub_model_field_name , f in annotation .__pydantic_fields__ .items ():
418418 if not f .validation_alias and sub_model_field_name .lower () == name .lower ():
419419 sub_model_field = f
420420 break
@@ -470,7 +470,7 @@ def _get_resolved_field_value(self, field: FieldInfo, field_name: str) -> tuple[
470470 def __call__ (self ) -> dict [str , Any ]:
471471 data : dict [str , Any ] = {}
472472
473- for field_name , field in self .settings_cls .model_fields .items ():
473+ for field_name , field in self .settings_cls .__pydantic_fields__ .items ():
474474 try :
475475 field_value , field_key , value_is_complex = self ._get_resolved_field_value (field , field_name )
476476 except Exception as e :
0 commit comments