          self._deleted = None
  
      #####
      # Methods to determine which fields to use when (de)serializing objects.
  
      def get_default_fields(self):
          """
          Return the complete set of default fields for the object, as a dict.
 
</s> remove         return data.get('id')
 </s> add         try:
            return data.get('id', None)
        except AttributeError:
            return None </s> remove                 try:
                    iter(data)
                    if isinstance(data, dict):
                        raise TypeError
                except TypeError:
                    self._errors = {'non_field_errors': ['Expected a list of items']}
                else:
 </s> add                 if hasattr(data, '__iter__') and not isinstance(data, (dict, six.text_type)): </s> remove                             try:
                                identity = self.get_identity(item)
                            except:
                                self.object = None
                            else:
                                self.object = identity_to_objects.pop(identity, None)
 </s> add                             identity = self.get_identity(item)
                            self.object = identity_to_objects.pop(identity, None)
        if many and instance is not None and not hasattr(instance, '__iter__'):
            raise ValueError('instance should be a queryset or other iterable with many=True')

        if allow_delete and not many:
            raise ValueError('allow_delete should only be used for bulk updates, but you have not set many=True')

          self._deleted = None
  
        if many and instance is not None and not hasattr(instance, '__iter__'):
            raise ValueError('instance should be a queryset or other iterable with many=True')

        if allow_delete and not many:
            raise ValueError('allow_delete should only be used for bulk updates, but you have not set many=True')

      #####
      # Methods to determine which fields to use when (de)serializing objects.
  
      def get_default_fields(self):
          """
          Return the complete set of default fields for the object, as a dict.
keep add keep keep keep keep keep keep
 Bit of extra tidying and plenty of docs 
rest_framework/serializers.py