diff --git a/rest_framework/fields.py b/rest_framework/fields.py index aab80982a..e77817b5c 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -644,6 +644,7 @@ class IntegerField(Field): def __init__(self, **kwargs): max_value = kwargs.pop('max_value', None) min_value = kwargs.pop('min_value', None) + kwargs.pop('max_length', None) # valid, but ignored. super(IntegerField, self).__init__(**kwargs) if max_value is not None: message = self.error_messages['max_value'].format(max_value=max_value) diff --git a/tests/test_model_serializer.py b/tests/test_model_serializer.py index da79164af..0b54764cb 100644 --- a/tests/test_model_serializer.py +++ b/tests/test_model_serializer.py @@ -609,3 +609,21 @@ class TestSerializerMetaClass(TestCase): str(exception), "Cannot set both 'fields' and 'exclude'." ) + + +class MaxIntLengthModel(models.Model): + count = models.IntegerField() + + +class TestIntegerMaxLength(TestCase): + def test_max_length(self): + class BasicModelSerializer(serializers.ModelSerializer): + class Meta: + model = MaxIntLengthModel + fields = ('count',) + + expected = dedent(""" + BasicModelSerializer(): + count = IntegerField() + """) + self.assertEqual(repr(BasicModelSerializer()), expected)