                  else:
                      continue
  
                  key = self.serialize_key(fname)
                  val = self.serialize_val(fname, obj)
                  data[key] = val
              except _SkipField:
                  pass
  
          return data
 
</s> remove         else:
            fields = _fields_to_list(self.fields)

 </s> add  </s> remove         related_serializer = self.get_related_serializer(key)
 </s> add         related_serializer = self.get_related_serializer(related_info) </s> remove     def get_related_serializer(self, key):
        info = _fields_to_dict(self.fields).get(key, None)

 </s> add     def get_related_serializer(self, info): </s> remove         """
        Return the set of field names/keys to use for a model instance/dict.
        """
 </s> add  </s> remove     def serialize_val(self, key, obj):
 </s> add     def serialize_val(self, key, obj, related_info):
                val = self.serialize_val(fname, obj, related_info)
                  else:
                      continue
  
                  key = self.serialize_key(fname)
                val = self.serialize_val(fname, obj, related_info)
                  data[key] = val
              except _SkipField:
                  pass
  
          return data
keep keep keep keep replace keep keep keep keep keep
 Fix for #178.

Related serializers passed in via include now work as expected. 
djangorestframework/serializer.py