  
      def resolve_related_fields(self):
          if len(self.from_fields) < 1 or len(self.from_fields) != len(self.to_fields):
              raise ValueError('Foreign Object from and to fields must be the same non-zero length')
          if isinstance(self.remote_field.model, six.string_types):
              raise ValueError('Related model %r cannot be resolved' % self.remote_field.model)
          related_fields = []
          for index in range(len(self.from_fields)):
              from_field_name = self.from_fields[index]
              to_field_name = self.to_fields[index]
 
</s> remove         if isinstance(self.remote_field.model, six.string_types):
 </s> add         if isinstance(self.remote_field.model, str): </s> remove             if isinstance(reply_to, six.string_types):
 </s> add             if isinstance(reply_to, str): </s> remove             if isinstance(cc, six.string_types):
 </s> add             if isinstance(cc, str): </s> remove             if isinstance(bcc, six.string_types):
 </s> add             if isinstance(bcc, str): </s> remove         if isinstance(index, six.string_types):
 </s> add         if isinstance(index, str):
        if isinstance(self.remote_field.model, str):
  
      def resolve_related_fields(self):
          if len(self.from_fields) < 1 or len(self.from_fields) != len(self.to_fields):
              raise ValueError('Foreign Object from and to fields must be the same non-zero length')
        if isinstance(self.remote_field.model, str):
              raise ValueError('Related model %r cannot be resolved' % self.remote_field.model)
          related_fields = []
          for index in range(len(self.from_fields)):
              from_field_name = self.from_fields[index]
              to_field_name = self.to_fields[index]
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/related.py