aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docs/api-guide/serializers.md2
-rw-r--r--docs/topics/credits.md2
-rw-r--r--rest_framework/serializers.py13
3 files changed, 9 insertions, 8 deletions
diff --git a/docs/api-guide/serializers.md b/docs/api-guide/serializers.md
index 50505d30..057827d3 100644
--- a/docs/api-guide/serializers.md
+++ b/docs/api-guide/serializers.md
@@ -254,7 +254,7 @@ When serializing objects using a nested representation any occurances of recursi
def get_related_field(self, model_field, to_many=False):
queryset = model_field.rel.to._default_manager
if to_many:
- return return serializers.ManyRelatedField(queryset=queryset)
+ return serializers.ManyRelatedField(queryset=queryset)
return serializers.RelatedField(queryset=queryset)
def get_field(self, model_field):
diff --git a/docs/topics/credits.md b/docs/topics/credits.md
index 6df99237..27a56326 100644
--- a/docs/topics/credits.md
+++ b/docs/topics/credits.md
@@ -48,6 +48,7 @@ The following people have helped make REST framework great.
* Max Hurl - [maximilianhurl]
* Tomi Pajunen - [eofs]
* Rob Dobson - [rdobson]
+* Daniel Vaca Araujo - [diviei]
Many thanks to everyone who's contributed to the project.
@@ -127,3 +128,4 @@ To contact the author directly:
[maximilianhurl]: https://github.com/maximilianhurl
[eofs]: https://github.com/eofs
[rdobson]: https://github.com/rdobson
+[diviei]: https://github.com/diviei
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):
"""