diff options
| author | Tom Christie | 2014-11-07 15:38:27 +0000 | 
|---|---|---|
| committer | Tom Christie | 2014-11-07 15:38:27 +0000 | 
| commit | 3e878a3207ba79785d41b4d6af5cd956156d45a3 (patch) | |
| tree | c0b5bb13579b0e690088767ef64b571e8307a5dc | |
| parent | 02844a1507285b7146dede5023b784fe63678cf7 (diff) | |
| download | django-rest-framework-3e878a3207ba79785d41b4d6af5cd956156d45a3.tar.bz2 | |
Fix initial data on serializers to reflect writable fields
| -rw-r--r-- | rest_framework/renderers.py | 5 | ||||
| -rw-r--r-- | rest_framework/serializers.py | 3 | 
2 files changed, 2 insertions, 6 deletions
| diff --git a/rest_framework/renderers.py b/rest_framework/renderers.py index 87fe4d29..b56f99db 100644 --- a/rest_framework/renderers.py +++ b/rest_framework/renderers.py @@ -581,12 +581,7 @@ class BrowsableAPIRenderer(BaseRenderer):                  # View has a serializer defined and parser class has a                  # corresponding renderer that can be used to render the data. -                # Get a read-only version of the serializer                  serializer = view.get_serializer(instance=instance) -                if instance 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() diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index 833a4e48..d83367f4 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -234,12 +234,13 @@ class Serializer(BaseSerializer):                  (field_name, field.get_value(self._initial_data))                  for field_name, field in self.fields.items()                  if field.get_value(self._initial_data) is not empty +                and not field.read_only              ], serializer=self)          return ReturnDict([              (field.field_name, field.get_initial())              for field in self.fields.values() -            if not field.write_only +            if not field.read_only          ], serializer=self)      def get_value(self, dictionary): | 
