code: def require_at_least_one_query_parameter(*query_parameter_names):
      
      def outer_wrapper(view):
          """ Allow the passing of parameters to require_at_least_one_query_parameter. """
          @wraps(view)
          def wrapper(request, *args, **kwargs):
              """
              Checks for the existence of the specified query parameters, raises a
              ValidationError if none of them were included in the request.
              """
              requirement_satisfied = False
              for query_parameter_name in query_parameter_names:
                  query_parameter_values = request.query_params.getlist(query_parameter_name)
                  kwargs[query_parameter_name] = query_parameter_values
                  if query_parameter_values:
                      requirement_satisfied = True
              if not requirement_satisfied:
                  raise ValidationError(
                      detail='You must provide at least one of the following query parameters: {params}.'.format(
                          params=', '.join(query_parameter_names)
                      )
                  )
              return view(request, *args, **kwargs)
          return wrapper
      return outer_wrapper
docs: Ensure at least one of the specified query parameters are included in the request.
  
      This decorator checks for the existence of at least one of the specified query
      parameters and passes the values as function parameters to the decorated view.
      If none of the specified query parameters are included in the request, a
      ValidationError is raised.
  
      Usage::
          @require_at_least_one_query_parameter('program_uuids', 'course_run_ids')
          def my_view(request, program_uuids, course_run_ids):
              # Some functionality ...