How to add optional filters/query parameters in Django extra actions

58 Views Asked by At

I have a ViewSet with extra action shown below

class Parent(
  mixin.CreateModelMixin, 
  mixin.ListModelMixin, 
  mixin.RetrieveModelMixin, 
  viewset.GenericViewSet
):
  queryset = Model.objects.all()
  serializer_class = ParentSerializer
  ...
  ...
  @action(detail=True, methods=["get", "post"], serializer_class=SomeSerializerclass)
  def extra(self, request, *args, **kwargs):
    if request.method == "GET":
      .... do something
    else:  # request.method is POST
      .... do something
    ...

I want to add few optional query parameters to this extra action endpoint like: parent/1/extra/?name=somename and this will filter the data for this name if request.method is GET. Also, this query param can be multiple like: parent/1/extra/?name=somename&surname=foo

How can I achieve this?

0

There are 0 best solutions below