code: def list(self, request, model_id=None, project_id=None, st=None):
      if model_id:
          queryset = (
              self.get_queryset()
              .filter(id=model_id, project=project_id)
              .order_by("-date_created")
          )
      else:
          queryset = (
              self.get_queryset()
              .filter(project=project_id)
              .order_by("-date_created")
          )
  
      # Get optional fields
      try:
          params = self.request.query_params
          param_fields = params.getlist("param_fields[]")
          metric_fields = params.getlist("metric_fields[]")
      except Exception:
          logger.info("There are no query parameters")
  
      # Serialize the data
      serializer = ExperimentSerializer(
          queryset,
          many=True,
          context={
              "param_fields": param_fields,
              "metric_fields": metric_fields,
          },
      )
      if st is None:
          st = status.HTTP_200_OK
  
      return Response(serializer.data, status=st)
  
file_path: modelchimp/modelchimp/views/api/experiment.py
imports: import logging
  from rest_framework import generics, status
  from rest_framework.response import Response
  from rest_framework.permissions import IsAuthenticated
  from modelchimp.models.experiment import Experiment
  from modelchimp.serializers.experiment import ExperimentSerializer
  from modelchimp.api_permissions import HasProjectMembership
label_desc: Use image node_id 1 for calling the ListExperimentAPI obj's underlying member method code with example usage: obj.list(request, model_id, project_id, st) and returns: Response