diff options
| author | Tom Christie | 2013-03-08 22:19:09 +0000 | 
|---|---|---|
| committer | Tom Christie | 2013-03-08 22:19:09 +0000 | 
| commit | 68683b2ea2907f367fdff60de91656504a242a14 (patch) | |
| tree | 04d9d56c2217f06808ec874ce5d709443e8a34ae /rest_framework/serializers.py | |
| parent | 53b58a50599bde2798b9d6deef0cd5bfc6ed2488 (diff) | |
| download | django-rest-framework-68683b2ea2907f367fdff60de91656504a242a14.tar.bz2 | |
Tweak implementation, and use FormSet style errors
Diffstat (limited to 'rest_framework/serializers.py')
| -rw-r--r-- | rest_framework/serializers.py | 24 | 
1 files changed, 9 insertions, 15 deletions
diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index 80287522..25790dbc 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -285,20 +285,6 @@ class BaseSerializer(Field):          """          Deserialize primitives -> objects.          """ -        if hasattr(data, '__iter__') and not isinstance(data, (dict, six.text_type)): -            object_list = list() -            error_list = list() -            for count, item in enumerate(data): -                obj = self.from_native(item, None) -                if self._errors: -                    error_list.append((count, self._errors)) -                object_list.append(obj) -            if not error_list: -                return object_list - -            self._errors = error_list -            return None -          self._errors = {}          if data is not None or files is not None:              attrs = self.restore_fields(data, files) @@ -364,7 +350,15 @@ class BaseSerializer(Field):                                    'Use the `many=True` flag when instantiating the serializer.',                                    PendingDeprecationWarning, stacklevel=3) -            ret = self.from_native(data, files) +            if many: +                ret = [] +                errors = [] +                for item in data: +                    ret.append(self.from_native(item, None)) +                    errors.append(self._errors) +                self._errors = any(errors) and errors or [] +            else: +                ret = self.from_native(data, files)              if not self._errors:                  self.object = ret  | 
