          Converts a dictionary of data into a dictionary of deserialized fields.
          """
          fields = self.get_fields()
          reverted_data = {}
          for field_name, field in fields.items():
              try:
                  field.field_from_native(data, files, field_name, reverted_data)
              except ValidationError as err:
                  self._errors[field_name] = list(err.messages)
  
 
</s> remove         fields = self.get_fields()
 </s> add  </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 key, val in self.default_fields.items():
 </s> add         for key, val in self.get_default_fields().items(): </s> remove         self.default_fields = self.get_default_fields()
 </s> add         self.serialize_fields = self.get_fields()
        for field_name, field in self.serialize_fields.items():
          Converts a dictionary of data into a dictionary of deserialized fields.
          """
          fields = self.get_fields()
          reverted_data = {}
        for field_name, field in self.serialize_fields.items():
              try:
                  field.field_from_native(data, files, field_name, reverted_data)
              except ValidationError as err:
                  self._errors[field_name] = list(err.messages)
  
keep keep keep keep replace keep keep keep keep keep
 Cache all fields on serializer init, not just default fields. 
rest_framework/serializers.py