aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/renderers.py
diff options
context:
space:
mode:
authorTom Christie2013-08-30 09:02:54 +0100
committerTom Christie2013-08-30 09:02:54 +0100
commit3fba60e99c75dda4e14f7fe4f941d6fc84e4c986 (patch)
tree62c33389ebb77a71b931ad72d702ba0096fe00fa /rest_framework/renderers.py
parent2247fd68e9b3bbc91075a11f44db16fc40497b2a (diff)
downloaddjango-rest-framework-3fba60e99c75dda4e14f7fe4f941d6fc84e4c986.tar.bz2
Drop broken placeholder serializations.
Diffstat (limited to 'rest_framework/renderers.py')
-rw-r--r--rest_framework/renderers.py13
1 files changed, 10 insertions, 3 deletions
diff --git a/rest_framework/renderers.py b/rest_framework/renderers.py
index 525e44d5..fca67eee 100644
--- a/rest_framework/renderers.py
+++ b/rest_framework/renderers.py
@@ -338,6 +338,11 @@ class HTMLFormRenderer(BaseRenderer):
fields = {}
for key, val in data.fields.items():
if getattr(val, 'read_only', True):
+ # Don't include read-only fields.
+ continue
+
+ if getattr(val, 'fields', None):
+ # Nested data not supported by HTML forms.
continue
kwargs = {}
@@ -476,6 +481,7 @@ class BrowsableAPIRenderer(BaseRenderer):
return
serializer = view.get_serializer(instance=obj)
+
data = serializer.data
form_renderer = self.form_renderer_class()
return form_renderer.render(data, self.accepted_media_type, self.renderer_context)
@@ -508,9 +514,10 @@ class BrowsableAPIRenderer(BaseRenderer):
# Get a read-only version of the serializer
serializer = view.get_serializer(instance=obj)
- for field_name, field in serializer.fields.items():
- if field.read_only:
- del serializer.fields[field_name]
+ if obj is None:
+ for name, field in serializer.fields.items():
+ if getattr(field, 'read_only', None):
+ del serializer.fields[name]
# Render the raw data content
renderer = renderer_class()