code: def get_filterset_kwargs(self, request, queryset, view):
          
          filter_keys = []
          # rewrite filter[field] query params to make DjangoFilterBackend work.
          data = request.query_params.copy()
          for qp, val in request.query_params.items():
              m = self.filter_regex.match(qp)
              if m and (not m.groupdict()['assoc'] or
                        m.groupdict()['ldelim'] != '[' or m.groupdict()['rdelim'] != ']'):
                  raise ValidationError("invalid query parameter: {}".format(qp))
              if m and qp != self.search_param:
                  if not val:
                      raise ValidationError("missing {} test value".format(qp))
                  # convert jsonapi relationship path to Django ORM's __ notation
                  key = m.groupdict()['assoc'].replace('.', '__')
                  # undo JSON_API_FORMAT_FIELD_NAMES conversion:
                  key = format_value(key, 'underscore')
                  data[key] = val
                  filter_keys.append(key)
                  del data[qp]
          return {
              'data': data,
              'queryset': queryset,
              'request': request,
              'filter_keys': filter_keys,
          }
docs: Turns filter[<field>]=<value> into <field>=<value> which is what
          DjangoFilterBackend expects
  
          :raises ValidationError: for bad filter syntax