diff options
| author | Tom Christie | 2012-10-24 20:58:10 +0100 | 
|---|---|---|
| committer | Tom Christie | 2012-10-24 20:58:28 +0100 | 
| commit | 3e751ccd8aa2870c125a17de6af6e1909aa2b35e (patch) | |
| tree | 83494cf52a55ef4e01612fd7552aecb969bfd357 /rest_framework | |
| parent | 0aed70dc8b9bf2bf6c6bbd540ffadfae9f74bbaa (diff) | |
| download | django-rest-framework-3e751ccd8aa2870c125a17de6af6e1909aa2b35e.tar.bz2 | |
Fix ModelSerializer logic for fields with default value, which should have required=False set
Diffstat (limited to 'rest_framework')
| -rw-r--r-- | rest_framework/serializers.py | 13 | 
1 files changed, 6 insertions, 7 deletions
diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index c9f025bc..8ee9a0ec 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -406,6 +406,10 @@ class ModelSerializer(Serializer):          """          Creates a default instance of a basic non-relational field.          """ +        kwargs = {} +        if model_field.has_default(): +            kwargs['required'] = False +          field_mapping = {              models.FloatField: FloatField,              models.IntegerField: IntegerField, @@ -421,14 +425,9 @@ class ModelSerializer(Serializer):              models.BooleanField: BooleanField,          }          try: -            ret = field_mapping[model_field.__class__]() +            return field_mapping[model_field.__class__](**kwargs)          except KeyError: -            ret = ModelField(model_field=model_field) - -        if model_field.default is not None: -            ret.required = False - -        return ret +            return ModelField(model_field=model_field, **kwargs)      def restore_object(self, attrs, instance=None):          """  | 
