      @property
      def choices(self):
          return dict([
              (
                  str(self.to_representation(item)),
                  str(item)
              )
              for item in self.queryset.all()
          ])
  
  
 
</s> remove                 str(item_representation),
                str(item) + ' - ' + str(item_representation)
 </s> add                 six.text_type(item_representation),
                six.text_type(item) + ' - ' + six.text_type(item_representation) </s> remove         return str(self.detail)
 </s> add         return six.text_type(self.detail) </s> remove from django.utils.encoding import smart_text
from rest_framework.fields import get_attribute, empty, Field
from rest_framework.reverse import reverse
from rest_framework.utils import html
 </s> add # coding: utf-8
from __future__ import unicode_literals
                six.text_type(self.to_representation(item)),
                six.text_type(item)
      @property
      def choices(self):
          return dict([
              (
                six.text_type(self.to_representation(item)),
                six.text_type(item)
                six.text_type(self.to_representation(item)),
                six.text_type(item)
              )
              for item in self.queryset.all()
          ])
  
  
keep keep keep keep replace replace keep keep keep keep keep
 str() -> six.text_type(). Closes #2290. 
rest_framework/relations.py