  
          self.init_data = data
          self.init_files = files
          self.object = instance
          self.default_fields = self.get_default_fields()
  
          self._data = None
          self._files = None
          self._errors = None
  
 
</s> remove         fields = self.get_fields()
        for field_name, field in fields.items():
 </s> add         for field_name, field in self.serialize_fields.items(): </s> remove         # TODO: refactor this so we're not determining the fields again
        fields = self.get_fields()

        for field_name, field in fields.items():
 </s> add         for field_name, field in self.serialize_fields.items(): </s> remove         for field_name, field in fields.items():
 </s> add         for field_name, field in self.serialize_fields.items(): </s> remove         fields = self.get_fields()
 </s> add  </s> remove         for key, val in self.default_fields.items():
 </s> add         for key, val in self.get_default_fields().items():
        self.serialize_fields = self.get_fields()
  
          self.init_data = data
          self.init_files = files
          self.object = instance
        self.serialize_fields = self.get_fields()
  
          self._data = None
          self._files = None
          self._errors = None
  
keep keep keep keep replace keep keep keep keep keep
 Cache all fields on serializer init, not just default fields. 
rest_framework/serializers.py