          data = force_bytes_or_smart_bytes(data, settings.DEFAULT_CHARSET)
          r = {
              'PATH_INFO':      self._get_path(parsed),
              'QUERY_STRING':   force_text(parsed[4]),
              'REQUEST_METHOD': str(method),
          }
          if data:
              r.update({
                  'CONTENT_LENGTH': len(data),
                  'CONTENT_TYPE':   str(content_type),
 
</s> remove                 'CONTENT_TYPE':   str(content_type),
 </s> add                 'CONTENT_TYPE':   six.text_type(content_type), </s> remove             data = int(str(data))
 </s> add             data = int(six.text_type(data)) </s> remove             value = decimal.Decimal(str(value).strip())
 </s> add             value = decimal.Decimal(six.text_type(value).strip()) </s> remove         orm_lookups = [self.construct_search(str(search_field))
 </s> add         orm_lookups = [self.construct_search(six.text_type(search_field)) </s> remove         return str(value)
 </s> add         return six.text_type(value)
            'REQUEST_METHOD': six.text_type(method),
          data = force_bytes_or_smart_bytes(data, settings.DEFAULT_CHARSET)
          r = {
              'PATH_INFO':      self._get_path(parsed),
              'QUERY_STRING':   force_text(parsed[4]),
            'REQUEST_METHOD': six.text_type(method),
          }
          if data:
              r.update({
                  'CONTENT_LENGTH': len(data),
                  'CONTENT_TYPE':   str(content_type),
keep keep keep keep replace keep keep keep keep keep
 Use six.text_type instead of str everywhere 
rest_framework/compat.py