  
      #####
      # Methods to determine which fields to use when (de)serializing objects.
  
      def get_default_fields(self):
          """
          Return the complete set of default fields for the object, as a dict.
          """
          return {}
 
</s> remove     def test_exception_for_incorect_fk(self):
 </s> add     def test_exception_for_incorrect_fk(self): </s> remove         self.assertRaises(AssertionError, PersonSerializerInvalidReadOnly, [])
 </s> add         serializer = PersonSerializerInvalidReadOnly()
        with self.assertRaises(AssertionError):
            serializer.fields </s> remove             TestSerializer(data={'name': 'foo'})
 </s> add             serializer.fields
    @cached_property
    def fields(self):
        return self.get_fields()

  
      #####
      # Methods to determine which fields to use when (de)serializing objects.
  
    @cached_property
    def fields(self):
        return self.get_fields()

      def get_default_fields(self):
          """
          Return the complete set of default fields for the object, as a dict.
          """
          return {}
keep keep keep add keep keep keep keep keep
 Set up serializer fields lazily on-demand.

This avoids AppRegistryNotReady problems in Django 1.7 with nested serializers,
which are instantiated at import time, possibly before Django's app registry is
fully populated. 
rest_framework/serializers.py