diff options
| author | elmkarami | 2014-03-19 15:41:25 +0000 | 
|---|---|---|
| committer | elmkarami | 2014-03-19 15:41:25 +0000 | 
| commit | 5c87db96c54aeb8ee62213b3ab2a054546d9756c (patch) | |
| tree | fc0e3f97fe9a17b43e2827ad67db999fc44419c0 /rest_framework/serializers.py | |
| parent | 24a688223240eb1e71db3c0f00cd621e80cb9fb2 (diff) | |
| download | django-rest-framework-5c87db96c54aeb8ee62213b3ab2a054546d9756c.tar.bz2 | |
Update serializers.py
Prevent iterating over a string that is supposed to be an iterable <==> Prevent read_only_fields = ('some_string)
Diffstat (limited to 'rest_framework/serializers.py')
| -rw-r--r-- | rest_framework/serializers.py | 8 | 
1 files changed, 7 insertions, 1 deletions
| diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index 10256d47..62ef5eed 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -757,6 +757,9 @@ class ModelSerializer(Serializer):                      field.read_only = True                  ret[accessor_name] = field +         +        #Ensure that 'read_only_fields is an iterable +        assert isinstance(self.opts.read_only_fields, (list, tuple)), '`read_only_fields` must be a list or tuple'           # Add the `read_only` flag to any fields that have bee specified          # in the `read_only_fields` option @@ -771,7 +774,10 @@ class ModelSerializer(Serializer):                  "on serializer '%s'." %                  (field_name, self.__class__.__name__))              ret[field_name].read_only = True - +         +        # Ensure that 'write_only_fields' is an iterabe +        assert isinstance(self.opts.write_only_fields, (list, tuple)), '`read_only_fields` must be a list or tuple'  +                  for field_name in self.opts.write_only_fields:              assert field_name not in self.base_fields.keys(), (                  "field '%s' on serializer '%s' specified in " | 
