diff options
Diffstat (limited to 'rest_framework')
| -rw-r--r-- | rest_framework/fields.py | 6 | ||||
| -rw-r--r-- | rest_framework/tests/fields.py | 23 |
2 files changed, 25 insertions, 4 deletions
diff --git a/rest_framework/fields.py b/rest_framework/fields.py index b23813ec..544afc98 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -135,8 +135,7 @@ def humanize_field(field): """ humanized = { - 'type': (field.type_name if field.type_name - else humanize_field_type(field.form_field_class)), + 'type': humanize_field_type(field.__class__), 'required': getattr(field, 'required', False), 'label': field.label, } @@ -154,7 +153,8 @@ def humanize_form_fields(form): :return: A dictionary of {field_label: humanized description} """ - fields = SortedDict([(f.name, humanize_field(f)) for f in form.fields]) + fields = SortedDict([(name, humanize_field(field)) + for name, field in form.fields.iteritems()]) return fields diff --git a/rest_framework/tests/fields.py b/rest_framework/tests/fields.py index de61b011..6a180cb8 100644 --- a/rest_framework/tests/fields.py +++ b/rest_framework/tests/fields.py @@ -4,7 +4,8 @@ General serializer field tests. from __future__ import unicode_literals from django.utils.datastructures import SortedDict import datetime -from rest_framework.fields import humanize_field, humanize_field_type +from rest_framework.fields import (humanize_field, humanize_field_type, + humanize_form_fields) from django import forms from decimal import Decimal from django.db import models @@ -742,3 +743,23 @@ class HumanizedField(TestCase): def test_label(self): for field in (self.required_field, self.optional_field): self.assertEqual(humanize_field(field)['label'], field.label) + + +class Form(forms.Form): + field1 = forms.CharField(max_length=3, label='field one') + field2 = forms.CharField(label='field two') + + +class HumanizedSerializer(TestCase): + def setUp(self): + self.serializer = TimestampedModelSerializer() + + def test_humanized(self): + humanized = humanize_form_fields(Form()) + self.assertEqual(humanized, { + 'field1': { + u'help_text': u'', u'required': True, + u'type': u'Single Character', u'label': 'field one'}, + 'field2': { + u'help_text': u'', u'required': True, + u'type': u'Single Character', u'label': 'field two'}}) |
