diff --git a/fastapi/dependencies/utils.py b/fastapi/dependencies/utils.py index 531e708e8..4d78174fa 100644 --- a/fastapi/dependencies/utils.py +++ b/fastapi/dependencies/utils.py @@ -670,20 +670,24 @@ async def solve_dependencies( dependency_cache=dependency_cache, ) + if PYDANTIC_V2: - if sys.hexversion >= 0x30a00000: + if sys.hexversion >= 0x30A00000: + def _allows_none(field: ModelField) -> bool: origin = get_origin(field.type_) - return (origin is Union or origin is types.UnionType) and type(None) in get_args( - field.type_ - ) + return (origin is Union or origin is types.UnionType) and type( + None + ) in get_args(field.type_) else: + def _allows_none(field: ModelField) -> bool: origin = get_origin(field.type_) return origin is Union and type(None) in get_args(field.type_) else: - def _allows_none(field: ModelField) -> bool: - return field.allow_none + + def _allows_none(field: ModelField) -> bool: + return field.allow_none def _validate_value_with_model_field( diff --git a/tests/test_none_passed_when_null_received.py b/tests/test_none_passed_when_null_received.py index c4ce6f8b7..51d3991f0 100644 --- a/tests/test_none_passed_when_null_received.py +++ b/tests/test_none_passed_when_null_received.py @@ -10,7 +10,7 @@ DEFAULT = 1234567890 endpoints = [] -if sys.hexversion >= 0x30a0000: +if sys.hexversion >= 0x30A0000: from typing import Annotated @app.post("/api1")