code: def get_serializer_fields(self, path, method, view, version=None, method_func=None):
          
          if method in ('PUT', 'PATCH', 'POST'):
              location = 'form'
          else:
              location = 'query'
  
          serializer_class = self.get_serializer_class(view, method_func)
          if not serializer_class:
              return []
  
          serializer = serializer_class()
          if isinstance(serializer, serializers.ListSerializer):
              return [
                  Field(
                      name='data',
                      location=location,
                      required=True,
                      schema=coreschema.Array()
                  )
              ]
  
          if not isinstance(serializer, serializers.Serializer):
              return []
  
          fields = []
          for field in serializer.fields.values():
              if field.read_only or isinstance(field, serializers.HiddenField):
                  continue
  
              required = field.required and method != 'PATCH'
              # if the attribute ('help_text') of this field is a lazy translation object, force it to generate a string
              description = str(field.help_text) if isinstance(field.help_text, Promise) else field.help_text
              fallback_schema = self.fallback_schema_from_field(field)
              field = Field(
                  name=field.field_name,
                  location=location,
                  required=required,
                  schema=fallback_schema if fallback_schema else field_to_schema(field),
                  description=description,
              )
              fields.append(field)
  
          return fields
docs: Return a list of `coreapi.Field` instances corresponding to any
          request body input, as determined by the serializer class.