aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework
diff options
context:
space:
mode:
authorTom Christie2012-10-24 20:58:10 +0100
committerTom Christie2012-10-24 20:58:28 +0100
commit3e751ccd8aa2870c125a17de6af6e1909aa2b35e (patch)
tree83494cf52a55ef4e01612fd7552aecb969bfd357 /rest_framework
parent0aed70dc8b9bf2bf6c6bbd540ffadfae9f74bbaa (diff)
downloaddjango-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.py13
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):
"""