drf: remove obsolete NullBooleanField serializer field (#72067)

This commit is contained in:
Paul Marillonnet 2022-12-06 12:06:54 +01:00
parent c91d38cce3
commit 771125f0dd
2 changed files with 7 additions and 7 deletions

View File

@ -342,7 +342,10 @@ DEFAULT_ATTRIBUTE_KINDS = [
'field_class': forms.BooleanField,
'serialize': lambda x: str(int(bool(x))),
'deserialize': lambda x: bool(int(x)),
'rest_framework_field_class': serializers.NullBooleanField,
'rest_framework_field_class': serializers.BooleanField,
'rest_framework_field_kwargs': {
'allow_null': True,
},
'html_value': lambda attribute, value: _('True') if value else _('False'),
},
{

View File

@ -207,12 +207,7 @@ class Attribute(models.Model):
}
)
if not self.required:
# setting an attribute to null will delete it
# NullBooleanField and BooleanField does not support allow_null
if field_class is serializers.BooleanField:
field_class = serializers.NullBooleanField
elif field_class is not serializers.NullBooleanField:
base_kwargs['allow_null'] = True
base_kwargs['allow_null'] = True
# if not stated otherwise by the definition of the kind, string alike fields
# accept blank values when not required
if issubclass(field_class, serializers.CharField) and 'allow_blank' not in base_kwargs:
@ -223,6 +218,8 @@ class Attribute(models.Model):
base_kwargs['allow_blank'] = False
elif issubclass(field_class, DateRestField):
base_kwargs['allow_blank'] = False
elif issubclass(field_class, serializers.BooleanField):
base_kwargs['allow_null'] = False
base_kwargs.update(kwargs)
return field_class(**base_kwargs)