      def get_internal_type(self):
          return "TextField"
  
      def to_python(self, value):
          if isinstance(value, six.string_types) or value is None:
              return value
          return force_text(value)
  
      def get_prep_value(self, value):
          value = super(TextField, self).get_prep_value(value)
 
</s> remove             return self.delimiter.join(six.text_type(self.base_field.prepare_value(v)) for v in value)
 </s> add             return self.delimiter.join(str(self.base_field.prepare_value(v)) for v in value) </s> remove         if isinstance(value, six.string_types):
 </s> add         if isinstance(value, str): </s> remove         return six.text_type(value)
 </s> add         return str(value) </s> remove         if isinstance(value, six.string_types):
 </s> add         if isinstance(value, str): </s> remove         return six.text_type(value.title)
 </s> add         return str(value.title)
        if isinstance(value, str) or value is None:
      def get_internal_type(self):
          return "TextField"
  
      def to_python(self, value):
        if isinstance(value, str) or value is None:
              return value
          return force_text(value)
  
      def get_prep_value(self, value):
          value = super(TextField, self).get_prep_value(value)
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/__init__.py