From ff3c8187a6f16d6be3aa037768b304e0d7292e94 Mon Sep 17 00:00:00 2001 From: Julien Hartmann Date: Wed, 17 Dec 2014 05:24:17 +0100 Subject: [PATCH] Allow derived serializers to provide extra default fields. --- rest_framework/serializers.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) 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: