diff --git a/fastapi/_compat/v2.py b/fastapi/_compat/v2.py index 3245f75fef..cd0481eff4 100644 --- a/fastapi/_compat/v2.py +++ b/fastapi/_compat/v2.py @@ -102,10 +102,6 @@ class ModelField: sa = self.field_info.serialization_alias return sa or None - @property - def required(self) -> bool: - return self.field_info.is_required() - @property def default(self) -> Any: return self.get_default() diff --git a/fastapi/dependencies/utils.py b/fastapi/dependencies/utils.py index ae89c8b6fb..b84bbf863d 100644 --- a/fastapi/dependencies/utils.py +++ b/fastapi/dependencies/utils.py @@ -710,7 +710,7 @@ def _validate_value_with_model_field( *, field: ModelField, value: Any, values: dict[str, Any], loc: tuple[str, ...] ) -> tuple[Any, list[Any]]: if value is None: - if field.required: + if field.field_info.is_required(): return None, [get_missing_field_error(loc=loc)] else: return deepcopy(field.default), [] @@ -742,7 +742,7 @@ def _get_multidict_value( ) or (is_sequence_field(field) and len(value) == 0) ): - if field.required: + if field.field_info.is_required(): return else: return deepcopy(field.default) @@ -996,7 +996,9 @@ def get_body_field( BodyModel = create_body_model( fields=flat_dependant.body_params, model_name=model_name ) - required = any(True for f in flat_dependant.body_params if f.required) + required = any( + True for f in flat_dependant.body_params if f.field_info.is_required() + ) BodyFieldInfo_kwargs: dict[str, Any] = { "annotation": BodyModel, "alias": "body", diff --git a/fastapi/openapi/utils.py b/fastapi/openapi/utils.py index 0f6cf8e3af..bcad0be75d 100644 --- a/fastapi/openapi/utils.py +++ b/fastapi/openapi/utils.py @@ -161,7 +161,7 @@ def _get_openapi_operation_parameters( parameter = { "name": name, "in": param_type.value, - "required": param.required, + "required": param.field_info.is_required(), "schema": param_schema, } if field_info.description: @@ -198,7 +198,7 @@ def get_openapi_operation_request_body( ) field_info = cast(Body, body_field.field_info) request_media_type = field_info.media_type - required = body_field.required + required = body_field.field_info.is_required() request_body_oai: dict[str, Any] = {} if required: request_body_oai["required"] = required