          value = super(FileField, self).get_prep_value(value)
          # Need to convert File objects provided via a form to unicode for database insertion
          if value is None:
              return None
          return six.text_type(value)
  
      def pre_save(self, model_instance, add):
          "Returns field's value just before saving."
          file = super(FileField, self).pre_save(model_instance, add)
          if file and not file._committed:
 
</s> remove         return six.text_type(value)
 </s> add         return str(value) </s> remove         if isinstance(value, six.string_types) or value is None:
 </s> add         if isinstance(value, str) or value is None: </s> remove         return six.text_type(value)
 </s> add         return str(value) </s> remove         return six.text_type(value)
 </s> add         return str(value) </s> remove         return six.text_type(value)
 </s> add         return str(value)
        return str(value)
          value = super(FileField, self).get_prep_value(value)
          # Need to convert File objects provided via a form to unicode for database insertion
          if value is None:
              return None
        return str(value)
  
      def pre_save(self, model_instance, add):
          "Returns field's value just before saving."
          file = super(FileField, self).pre_save(model_instance, add)
          if file and not file._committed:
keep keep keep keep replace keep keep keep keep keep
 Refs #23919 -- Removed six.<various>_types usage

Thanks Tim Graham and Simon Charette for the reviews. 
django/db/models/fields/files.py