diff options
| author | Tom Christie | 2013-10-02 13:45:35 +0100 |
|---|---|---|
| committer | Tom Christie | 2013-10-02 13:45:35 +0100 |
| commit | a14f1e886402b8d0f742fdbb912b03a4004e1735 (patch) | |
| tree | 0ddb30e4c46d50ec76067fdd4726e7e76ac6964f /rest_framework/serializers.py | |
| parent | 1fd83adb9c1f888ed05d5b6d570b5e37996f96ba (diff) | |
| download | django-rest-framework-a14f1e886402b8d0f742fdbb912b03a4004e1735.tar.bz2 | |
Serializers can now be rendered directly to HTML
Diffstat (limited to 'rest_framework/serializers.py')
| -rw-r--r-- | rest_framework/serializers.py | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index 8d2e0feb..206a8123 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -32,6 +32,13 @@ from rest_framework.relations import * from rest_framework.fields import * +def pretty_name(name): + """Converts 'first_name' to 'First name'""" + if not name: + return '' + return name.replace('_', ' ').capitalize() + + class RelationsList(list): _deleted = [] @@ -306,7 +313,17 @@ class BaseSerializer(WritableField): for field_name, field in self.fields.items(): field.initialize(parent=self, field_name=field_name) key = self.get_field_key(field_name) - value = field.field_to_native(obj, field_name) + if self._errors: + value = self.init_data.get(field_name) + else: + value = field.field_to_native(obj, field_name) + + field._errors = self._errors.get(key) if self._errors else None + field._name = field_name + field._value = value + if not field.label: + field.label = pretty_name(key) + ret[key] = value ret.fields[key] = field return ret |
