  
          fields = self.get_fields(instance)
  
          # serialize each required field
          for fname in fields:
              try:
                  # we first check for a method 'fname' on self,
                  # 'fname's signature must be 'def fname(self, instance)'
                  meth = getattr(self, fname, None)
                  if (inspect.ismethod(meth) and
 
</s> remove         """
        Return the set of field names/keys to use for a model instance/dict.
        """
 </s> add  </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 [_field_to_tuple(field)[0] for field in fields or ()]


def _fields_to_dict(fields):
    """
    Return a `dict` of field name -> None, or tuple of fields, or Serializer class
    """
    return dict([_field_to_tuple(field) for field in fields or ()])
 </s> add     return [_field_to_tuple(field) for field in fields or ()] </s> remove         else:
            fields = _fields_to_list(self.fields)

 </s> add  </s> remove     Return a list of field names.
 </s> add     Return a list of field tuples.
        for fname, related_info in _fields_to_list(fields):
  
          fields = self.get_fields(instance)
  
          # serialize each required field
        for fname, related_info in _fields_to_list(fields):
              try:
                  # we first check for a method 'fname' on self,
                  # 'fname's signature must be 'def fname(self, instance)'
                  meth = getattr(self, fname, None)
                  if (inspect.ismethod(meth) and
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