code: def validate(self, instance, value):
          
          if isinstance(value, string_types) and self.mode is not None:
              try:
                  value = open(value, self.mode)
              except (IOError, TypeError):
                  self.error(instance, value,
                             extra='Cannot open file: {}'.format(value))
          if not all([hasattr(value, attr) for attr in ('read', 'seek')]):
              self.error(instance, value, extra='Not a file-like object')
          if not hasattr(value, 'mode') or self.valid_modes is None:
              pass
          elif value.mode not in self.valid_modes:
              self.error(instance, value,
                         extra='Invalid mode: {}'.format(value.mode))
          if getattr(value, 'closed', False):
              self.error(instance, value, extra='File is closed.')
          return value
docs: Checks that the value is a valid file open in the correct mode
  
          If value is a string, it attempts to open it with the given mode.