From a1dad503cfe637e9575168f74782eca654dbb041 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Padilla?= Date: Fri, 16 Oct 2015 07:17:33 -0400 Subject: [PATCH] Map TextField max_length to CharField --- rest_framework/utils/field_mapping.py | 3 ++- tests/test_model_serializer.py | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) 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):