diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index 8351b3df6..e6bcc32fb 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -836,10 +836,15 @@ class ModelSerializer(Serializer): kwargs.update({attribute: getattr(model_field, attribute)}) try: - return self.field_mapping[model_field.__class__](**kwargs) + field_class = self.field_mapping[model_field.__class__] except KeyError: return ModelField(model_field=model_field, **kwargs) + if issubclass(field_class, CharField) and model_field.null: + kwargs['allow_none'] = True + + return field_class(**kwargs) + def get_validation_exclusions(self): """ Return a list of field names to exclude from model validation.