В DRF объект request доступен лишь в методах, которые выполняются при обработке запроса. В init методе доступ к request получить невозможно, так как init выполняется при создании экземпляра класса, а не при обработке запроса.
НО! Как вариант, можно создать метод, который будет выполняться перед запросом, например, использовать метод initial в классе ViewSet, например:
from rest_framework import viewsets, status
from rest_framework.response import Response
class FooBarAPI(viewsets.ViewSet):
def initial(self, request, *args, **kwargs):
super().initial(request, *args, **kwargs)
self.query_params = getattr(request, 'query_params', {})
def foo(self, request, *args, **kwargs):
print(self.query_params.get('param1'))
return Response("foo", status=status.HTTP_200_OK)
def bar(self, request, *args, **kwargs):
print(self.query_params.get('param2'))
return Response("bar", status=status.HTTP_200_OK)