  
          if self.many is not None:
              many = self.many
          else:
              many = hasattr(obj, '__iter__') and not isinstance(obj, Page)
  
          if many:
              return [self.to_native(item) for item in obj]
          return self.to_native(obj)
  
 
</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                 value = getattr(value, component)
                if is_simple_callable(value):
                    value = value()
 </s> add                 value = get_component(value, component) </s> remove                 many = hasattr(data, '__iter__') and not isinstance(data, dict)
 </s> add                 many = hasattr(data, '__iter__') and not isinstance(data, (Page, dict)) </s> remove             value = getattr(obj, field_name)
 </s> add             value = get_component(obj, field_name)
            many = hasattr(obj, '__iter__') and not isinstance(obj, (Page, dict))
  
          if self.many is not None:
              many = self.many
          else:
            many = hasattr(obj, '__iter__') and not isinstance(obj, (Page, dict))
  
          if many:
              return [self.to_native(item) for item in obj]
          return self.to_native(obj)
  
keep keep keep keep replace keep keep keep keep keep
 Allow serializers to handle dicts as well as objects.  Fixes #447. 
rest_framework/serializers.py