          fields = self.get_fields(nested=bool(self.opts.depth))
          reverted_data = {}
          for field_name, field in fields.items():
              try:
                  field.field_from_native(data, field_name, reverted_data)
              except ValidationError as err:
                  self._errors[field_name] = list(err.messages)
  
          return reverted_data
  
 
</s> remove     def restore_fields(self, data):
 </s> add     def restore_fields(self, data, files): </s> remove         # TODO: add support for files
 </s> add 
                if isinstance(field, (FileField, ImageField)):
                    field.field_from_native(files, field_name, reverted_data)
                else:
                    field.field_from_native(data, field_name, reverted_data)
          fields = self.get_fields(nested=bool(self.opts.depth))
          reverted_data = {}
          for field_name, field in fields.items():
              try:
                if isinstance(field, (FileField, ImageField)):
                    field.field_from_native(files, field_name, reverted_data)
                else:
                    field.field_from_native(data, field_name, reverted_data)
              except ValidationError as err:
                  self._errors[field_name] = list(err.messages)
  
          return reverted_data
  
keep keep keep keep replace keep keep keep keep keep
 Added a FileField and an ImageField (copied from django.forms.fields).
Adjusted generics, mixins and serializers to take a `files` arg where applicable. 
rest_framework/serializers.py