aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/serializers.py
diff options
context:
space:
mode:
authorTom Christie2013-10-02 13:45:35 +0100
committerTom Christie2013-10-02 13:45:35 +0100
commita14f1e886402b8d0f742fdbb912b03a4004e1735 (patch)
tree0ddb30e4c46d50ec76067fdd4726e7e76ac6964f /rest_framework/serializers.py
parent1fd83adb9c1f888ed05d5b6d570b5e37996f96ba (diff)
downloaddjango-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.py19
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