      def to_internal_value(self, data):
          return str(data)
  
      def to_representation(self, value):
          return str(value)
  
  
  class EmailField(CharField):
      default_error_messages = {
          'invalid': _('Enter a valid email address.')
 
</s> remove         return self.choice_strings_to_values[str(value)]
 </s> add         return self.choice_strings_to_values[six.text_type(value)] </s> remove         return str(value).strip()
 </s> add         return six.text_type(value).strip() </s> remove         return str(data)
 </s> add         return six.text_type(data) </s> remove         return str(value)
 </s> add         return six.text_type(value) </s> remove         return str(data).strip()
 </s> add         return six.text_type(data).strip()
        return six.text_type(value)
      def to_internal_value(self, data):
          return str(data)
  
      def to_representation(self, value):
        return six.text_type(value)
  
  
  class EmailField(CharField):
      default_error_messages = {
          'invalid': _('Enter a valid email address.')
keep keep keep keep replace keep keep keep keep keep
 Use six.text_type instead of str everywhere 
rest_framework/fields.py