From a319ed1ed9f1bbb294a332257eda5a42d0abcfcd Mon Sep 17 00:00:00 2001 From: "sascha.vanweerdenburg" Date: Thu, 26 Jan 2023 11:48:34 +0100 Subject: [PATCH] Use model field default in ModelSerializer field --- rest_framework/serializers.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index eae6a0b2e..743f64e72 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -1259,7 +1259,12 @@ class ModelSerializer(Serializer): # `model_field` is only valid for the fallback case of # `ModelField`, which is used when no other typed field # matched to the model field. - field_kwargs.pop('model_field', None) + if 'model_field' in field_kwargs: + model_field = field_kwargs.pop('model_field') + + # Use the model field default value if provided + if 'default' not in field_kwargs and model_field.default != models.fields.NOT_PROVIDED: + field_kwargs['default'] = model_field.default if not issubclass(field_class, CharField) and not issubclass(field_class, ChoiceField): # `allow_blank` is only valid for textual fields.