Использование GenericAPIView (наследуется от APIView), который предоставляет такие методы, как get_serializer_class
, где вы можете реализовать логику в методе valid_method
.
Пример :
from rest_framework.generics import GenericAPIView
class CustomGenericAPIView(GenericAPIView):
serializer_class = None
def get_serializer_class(self, *args, **kwargs):
request_method = self.request.method
if request_method == "POST":
return self.PostSerializer
elif request.method == "DELETE":
return self.DeleteSerializer
else:
return super().get_serializer_class(*args, **kwargs)
def post(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.data)
# rest of the code