diff --git a/rest_framework/utils/field_mapping.py b/rest_framework/utils/field_mapping.py index 50de3f125..483d8375f 100644 --- a/rest_framework/utils/field_mapping.py +++ b/rest_framework/utils/field_mapping.py @@ -100,7 +100,8 @@ def get_field_kwargs(field_name, model_field): if model_field.has_default() or model_field.blank or model_field.null: kwargs['required'] = False - if model_field.null and not isinstance(model_field, models.NullBooleanField): + is_null_boolean_field = isinstance(model_field, models.NullBooleanField) + if (model_field.null and not is_null_boolean_field) or (model_field.choices and is_null_boolean_field): kwargs['allow_null'] = True if model_field.blank and (isinstance(model_field, models.CharField) or