diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index e9860a2fc..24aca0d94 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -974,10 +974,7 @@ class ModelSerializer(Serializer): kwargs = get_url_kwargs(model) else: - raise ImproperlyConfigured( - 'Field name `%s` is not valid for model `%s`.' % - (field_name, model.__class__.__name__) - ) + field_cls, kwargs = self.get_extra_field(field_name, model) # Check that any fields declared on the class are # also explicitly included in `Meta.fields`. @@ -1013,6 +1010,12 @@ class ModelSerializer(Serializer): return ret + def get_extra_field(self, field_name, model): + raise ImproperlyConfigured( + 'Field name `%s` is not valid for model `%s`.' % + (field_name, model.__class__.__name__) + ) + def _include_additional_options(self, extra_kwargs): read_only_fields = getattr(self.Meta, 'read_only_fields', None) if read_only_fields is not None: