          if isinstance(data, type('')) or not hasattr(data, '__iter__'):
              self.fail('not_a_list', input_type=type(data).__name__)
  
          return set([
              super(MultipleChoiceField, self).to_internal_value(item)
              for item in data
          ])
  
 
</s> remove         'not_a_list': _('Expected a list of items but got type "{input_type}".')
 </s> add         'not_a_list': _('Expected a list of items but got type "{input_type}".'),
        'empty': _('This selection may not be empty.')
        if not self.allow_empty and len(data) == 0:
            self.fail('empty')
          if isinstance(data, type('')) or not hasattr(data, '__iter__'):
              self.fail('not_a_list', input_type=type(data).__name__)
        if not self.allow_empty and len(data) == 0:
            self.fail('empty')
  
          return set([
              super(MultipleChoiceField, self).to_internal_value(item)
              for item in data
          ])
  
keep add keep keep keep keep keep keep
 Added allow_empty flag for ListField, ListSerializer, ManyRelation, MultipleChoiceField. 
rest_framework/fields.py