Django rest framework 我们可以在apiview类django rest框架中使用多个get方法吗

Django rest framework 我们可以在apiview类django rest框架中使用多个get方法吗,django-rest-framework,Django Rest Framework,我将django rest框架与ApiView一起使用。我想在apiview类中使用multiple-get方法,并在URL文件中与方法名称分开。为此,您可以使用ViewSet而不是apiview 这里有一个例子 from rest_framework import viewsets from rest_framework.decorators import detail_route from rest_framework.response import Response class MyVi

我将django rest框架与ApiView一起使用。我想在apiview类中使用multiple-get方法,并在URL文件中与方法名称分开。

为此,您可以使用ViewSet而不是apiview

这里有一个例子

from rest_framework import viewsets
from rest_framework.decorators import detail_route
from rest_framework.response import Response

class MyViewSet(viewsets.GenericViewSet):

    @detail_route(methods=['get'])
    def some_get_method(self, request, pk=None):
        return Response({'data': 'response_data'})
为了使用它,您的URL将类似于,/some\u get\u方法

或者您可以在APIView中重写dispatch方法来执行此操作

def MyAPIView(APIView):
    def some_get_method(self, request):
        return Response({'data': 'response_data'})

    def dispatch(self, request, *args, **kwargs):
        if request.method.lower() == "get" and request.GET.get('identifier'):
            return self.some_get_method(request)
        return super().dispatch(request, *args, **kwargs)