          """
          Run `validate_<fieldname>()` and `validate()` methods on the serializer
          """
          # TODO: refactor this so we're not determining the fields again
          fields = self.get_fields(nested=bool(self.opts.depth))
  
          for field_name, field in fields.items():
              try:
                  validate_method = getattr(self, 'validate_%s' % field_name, None)
                  if validate_method:
 
</s> remove     def default_fields(self, nested=False):
 </s> add     def get_default_fields(self): </s> remove         fields = self.get_fields(nested=bool(self.opts.depth))
 </s> add         fields = self.get_fields() </s> remove         # TODO: Modify this so that it's called on init, and drop
        #       serialize/obj/data arguments.
        #
        #       We *could* provide a hook for dynamic fields, but
        #       it'd be nice if the default was to generate fields statically
        #       at the point of __init__
 </s> add  </s> remove         fields = self.get_fields(nested=bool(self.opts.depth))
 </s> add         fields = self.get_fields() </s> remove         fields = self.default_fields(nested)
        for key, val in fields.items():
 </s> add         for key, val in self.default_fields.items():
        fields = self.get_fields()
          """
          Run `validate_<fieldname>()` and `validate()` methods on the serializer
          """
          # TODO: refactor this so we're not determining the fields again
        fields = self.get_fields()
  
          for field_name, field in fields.items():
              try:
                  validate_method = getattr(self, 'validate_%s' % field_name, None)
                  if validate_method:
keep keep keep keep replace keep keep keep keep keep
 Cache default fields per serializer instance for improved performance 
rest_framework/serializers.py