diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index d0313513b..943fba6ba 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -739,15 +739,16 @@ class ModelSerializer(Serializer): if issubclass(model_field.__class__, models.TextField): kwargs['widget'] = widgets.Textarea - if issubclass(model_field.__class__, models.PositiveIntegerField) or\ - issubclass(model_field.__class__, models.PositiveSmallIntegerField): - kwargs['min_value'] = 0 - # TODO: TypedChoiceField? if model_field.flatchoices: # This ModelField contains choices kwargs['choices'] = model_field.flatchoices return ChoiceField(**kwargs) + # put this below the ChoiceField because min_value isn't a valid initializer + if issubclass(model_field.__class__, models.PositiveIntegerField) or\ + issubclass(model_field.__class__, models.PositiveSmallIntegerField): + kwargs['min_value'] = 0 + attribute_dict = { models.CharField: ['max_length'], models.CommaSeparatedIntegerField: ['max_length'],