Commit 3e751ccd by Tom Christie

Fix ModelSerializer logic for fields with default value, which should have required=False set

parent 0aed70dc
...@@ -406,6 +406,10 @@ class ModelSerializer(Serializer): ...@@ -406,6 +406,10 @@ class ModelSerializer(Serializer):
""" """
Creates a default instance of a basic non-relational field. Creates a default instance of a basic non-relational field.
""" """
kwargs = {}
if model_field.has_default():
kwargs['required'] = False
field_mapping = { field_mapping = {
models.FloatField: FloatField, models.FloatField: FloatField,
models.IntegerField: IntegerField, models.IntegerField: IntegerField,
...@@ -421,14 +425,9 @@ class ModelSerializer(Serializer): ...@@ -421,14 +425,9 @@ class ModelSerializer(Serializer):
models.BooleanField: BooleanField, models.BooleanField: BooleanField,
} }
try: try:
ret = field_mapping[model_field.__class__]() return field_mapping[model_field.__class__](**kwargs)
except KeyError: except KeyError:
ret = ModelField(model_field=model_field) return ModelField(model_field=model_field, **kwargs)
if model_field.default is not None:
ret.required = False
return ret
def restore_object(self, attrs, instance=None): def restore_object(self, attrs, instance=None):
""" """
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment