Fix nullable metadata loss for OpenAPI 3.1 choice fields with ENUM_ADD_EXPLICIT_BLANK_NULL_CHOICE=False #1454
  Add this suggestion to a batch that can be applied as a single commit.
  This suggestion is invalid because no changes were made to the code.
  Suggestions cannot be applied while the pull request is closed.
  Suggestions cannot be applied while viewing a subset of changes.
  Only one suggestion per line can be applied in a batch.
  Add this suggestion to a batch that can be applied as a single commit.
  Applying suggestions on deleted lines is not supported.
  You must change the existing code in this line in order to create a valid suggestion.
  Outdated suggestions cannot be applied.
  This suggestion has been applied or marked resolved.
  Suggestions cannot be applied from pending reviews.
  Suggestions cannot be applied on multi-line comments.
  Suggestions cannot be applied while the pull request is queued to merge.
  Suggestion cannot be applied right now. Please check back later.
  
    
  
    
Description
Fixes nullable metadata loss for OpenAPI 3.1 choice fields when using
ENUM_ADD_EXPLICIT_BLANK_NULL_CHOICE=False.Problem
When using
OAS_VERSION="3.1.0"withENUM_ADD_EXPLICIT_BLANK_NULL_CHOICE=False, nullable choice fields were losing theirnullable: truemetadata during enum postprocessing, causing client generation issues.Affected Configuration
Symptoms
Nullable choice fields defined like:
Were generating schemas without nullable information:
Root Cause
type=['string', 'null']'null'from type array (line 160 in hooks.py)ENUM_ADD_EXPLICIT_BLANK_NULL_CHOICE=False, no separate NullEnum component is createdFiles Changed
drf_spectacular/hooks.py: Core fix for nullable preservationtests/test_regressions.py: Regression test to prevent future issues