                  if not hasattr(self, 'get_serializer'):
                      continue
                  serializer = self.get_serializer()
                  if serializer is not None:
                      actions[method] = humanize_form_fields(serializer)
              except exceptions.PermissionDenied:
                  # don't add this method
                  pass
              except exceptions.NotAuthenticated:
                  # don't add this method
 
</s> remove def humanize_field_type(field_type):
    """Return a human-readable name for a field type.

    :param field_type: Either a field type class (for example
        django.forms.fields.DateTimeField), or the name of a field type
        (for example "DateTimeField").

    :return: unicode

    """
    if isinstance(field_type, basestring):
        field_type_name = field_type
    else:
        field_type_name = field_type.__name__
    try:
        return HUMANIZED_FIELD_TYPES[field_type_name]
    except KeyError:
        humanized = re.sub('([a-z0-9])([A-Z])', r'\1 \2', field_type_name)
        return humanized.capitalize()


def humanize_field(field):
    """Return a human-readable description of a field.

    :param field: A Django field.

    :return: A dictionary of the form {type: type name, required: bool,
             label: field label: read_only: bool,
             help_text: optional help text}

    """
    humanized = {
        'type': humanize_field_type(field.__class__),
        'required': getattr(field, 'required', False),
    }
    optional_attrs = ['read_only', 'help_text', 'label',
                      'min_length', 'max_length']
    for attr in optional_attrs:
        if getattr(field, attr, None) is not None:
            humanized[attr] = getattr(field, attr)
    return humanized


 </s> add  </s> remove         self.assertEqual(getattr(serializer.fields['url_field'], 'max_length'), 20)


class HumanizedFieldType(TestCase):
    def test_standard_type_classes(self):
        for field_type_name in forms.fields.__all__:
            field_type = getattr(forms.fields, field_type_name)
            humanized = humanize_field_type(field_type)
            self.assert_valid_name(humanized)

    def test_standard_type_names(self):
        for field_type_name in forms.fields.__all__:
            humanized = humanize_field_type(field_type_name)
            self.assert_valid_name(humanized)

    def test_custom_type_name(self):
        humanized = humanize_field_type('SomeCustomType')
        self.assertEquals(humanized, u'Some custom type')

    def test_custom_type(self):
        custom_type = namedtuple('SomeCustomType', [])
        humanized = humanize_field_type(custom_type)
        self.assertEquals(humanized, u'Some custom type')

    def assert_valid_name(self, humanized):
        """A humanized field name is valid if it's a non-empty
        unicode.

        """
        self.assertIsInstance(humanized, unicode)
        self.assertNotEqual(humanized, '')
 </s> add         self.assertEqual(getattr(serializer.fields['url_field'],
                         'max_length'), 20) </s> remove             url_field = serializers.URLField(source='url_field', max_length=20, required=False)
 </s> add             url_field = serializers.URLField(source='url_field',
                                             max_length=20, required=False) </s> remove             slug_field = serializers.SlugField(source='slug_field', max_length=20, required=False)
 </s> add             slug_field = serializers.SlugField(source='slug_field',
                                               max_length=20, required=False)
                    actions[method] = serializer.humanized
                  if not hasattr(self, 'get_serializer'):
                      continue
                  serializer = self.get_serializer()
                  if serializer is not None:
                    actions[method] = serializer.humanized
              except exceptions.PermissionDenied:
                  # don't add this method
                  pass
              except exceptions.NotAuthenticated:
                  # don't add this method
keep keep keep keep replace keep keep keep keep keep
 simplified, moved field humanizing to Field. broken tests 
rest_framework/views.py