  
          if self.source:
              value = obj
              for component in self.source.split('.'):
                  value = getattr(value, component)
                  if is_simple_callable(value):
                      value = value()
          else:
              value = getattr(obj, field_name)
          return self.to_native(value)
  
      def to_native(self, value):
 
</s> remove             value = getattr(obj, field_name)
 </s> add             value = get_component(obj, field_name) </s> remove             many = hasattr(obj, '__iter__') and not isinstance(obj, Page)
 </s> add             many = hasattr(obj, '__iter__') and not isinstance(obj, (Page, dict)) </s> remove                 many = hasattr(obj, '__iter__') and not isinstance(obj, Page)
 </s> add                 many = hasattr(obj, '__iter__') and not isinstance(obj, (Page, dict)) </s> remove                 many = hasattr(data, '__iter__') and not isinstance(data, dict)
 </s> add                 many = hasattr(data, '__iter__') and not isinstance(data, (Page, dict))
                value = get_component(value, component)
  
          if self.source:
              value = obj
              for component in self.source.split('.'):
                value = get_component(value, component)
                value = get_component(value, component)
                value = get_component(value, component)
          else:
              value = getattr(obj, field_name)
          return self.to_native(value)
  
      def to_native(self, value):
keep keep keep keep replace replace replace keep keep keep keep keep
 Allow serializers to handle dicts as well as objects.  Fixes #447. 
rest_framework/fields.py