diff options
| author | Tom Christie | 2013-08-30 09:02:54 +0100 | 
|---|---|---|
| committer | Tom Christie | 2013-08-30 09:02:54 +0100 | 
| commit | 3fba60e99c75dda4e14f7fe4f941d6fc84e4c986 (patch) | |
| tree | 62c33389ebb77a71b931ad72d702ba0096fe00fa /rest_framework/renderers.py | |
| parent | 2247fd68e9b3bbc91075a11f44db16fc40497b2a (diff) | |
| download | django-rest-framework-3fba60e99c75dda4e14f7fe4f941d6fc84e4c986.tar.bz2 | |
Drop broken placeholder serializations.
Diffstat (limited to 'rest_framework/renderers.py')
| -rw-r--r-- | rest_framework/renderers.py | 13 | 
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() | 
