                      )
          return errors
  
      def _check_unique_target(self):
          rel_is_string = isinstance(self.remote_field.model, six.string_types)
          if rel_is_string or not self.requires_unique_target:
              return []
  
          try:
              self.foreign_related_fields
 
</s> remove         rel_is_string = isinstance(self.remote_field.model, six.string_types)
 </s> add         rel_is_string = isinstance(self.remote_field.model, str) </s> remove         if isinstance(self.remote_field.model, six.string_types):
 </s> add         if isinstance(self.remote_field.model, str): </s> remove                 not isinstance(self.remote_field.model, six.string_types) and
 </s> add                 not isinstance(self.remote_field.model, str) and </s> remove         if isinstance(self.remote_field.through, six.string_types) or not self.remote_field.through._meta.managed:
 </s> add         if isinstance(self.remote_field.through, str) or not self.remote_field.through._meta.managed: </s> remove         if not isinstance(string_if_invalid, six.string_types):
 </s> add         if not isinstance(string_if_invalid, str):
        rel_is_string = isinstance(self.remote_field.model, str)
                      )
          return errors
  
      def _check_unique_target(self):
        rel_is_string = isinstance(self.remote_field.model, str)
          if rel_is_string or not self.requires_unique_target:
              return []
  
          try:
              self.foreign_related_fields
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