      if relation == RECURSIVE_RELATIONSHIP_CONSTANT:
          relation = scope_model
  
      # Look for an "app.Model" relation
      if isinstance(relation, six.string_types):
          if "." not in relation:
              relation = "%s.%s" % (scope_model._meta.app_label, relation)
  
      return relation
  
 
</s> remove             lists = [[six.text_type(r) for r in b.read_by.all()] for b in author.books.all()]
 </s> add             lists = [[str(r) for r in b.read_by.all()] for b in author.books.all()] </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(items, six.string_types):
 </s> add                 if isinstance(items, 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
    if isinstance(relation, str):
      if relation == RECURSIVE_RELATIONSHIP_CONSTANT:
          relation = scope_model
  
      # Look for an "app.Model" relation
    if isinstance(relation, str):
          if "." not in relation:
              relation = "%s.%s" % (scope_model._meta.app_label, relation)
  
      return relation
  
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