diff --git a/rest_framework/utils/field_mapping.py b/rest_framework/utils/field_mapping.py index 8206578ee..f109ad80d 100644 --- a/rest_framework/utils/field_mapping.py +++ b/rest_framework/utils/field_mapping.py @@ -123,7 +123,8 @@ def get_field_kwargs(field_name, model_field): # Ensure that max_length is passed explicitly as a keyword arg, # rather than as a validator. max_length = getattr(model_field, 'max_length', None) - if max_length is not None and isinstance(model_field, models.CharField): + if max_length is not None and (isinstance(model_field, models.CharField) or + isinstance(model_field, models.TextField)): kwargs['max_length'] = max_length validator_kwarg = [ validator for validator in validator_kwarg diff --git a/tests/test_model_serializer.py b/tests/test_model_serializer.py index aa62ec4ae..c9b2d313e 100644 --- a/tests/test_model_serializer.py +++ b/tests/test_model_serializer.py @@ -63,7 +63,7 @@ class RegularFieldsModel(models.Model): positive_small_integer_field = models.PositiveSmallIntegerField() slug_field = models.SlugField(max_length=100) small_integer_field = models.SmallIntegerField() - text_field = models.TextField() + text_field = models.TextField(max_length=100) time_field = models.TimeField() url_field = models.URLField(max_length=100) custom_field = CustomField() @@ -161,11 +161,12 @@ class TestRegularFieldMappings(TestCase): positive_small_integer_field = IntegerField() slug_field = SlugField(max_length=100) small_integer_field = IntegerField() - text_field = CharField(style={'base_template': 'textarea.html'}) + text_field = CharField(max_length=100, style={'base_template': 'textarea.html'}) time_field = TimeField() url_field = URLField(max_length=100) custom_field = ModelField(model_field=) """) + self.assertEqual(unicode_repr(TestSerializer()), expected) def test_field_options(self):