1
我正在使用django rest框架和apiviews。我想在apiview類中使用多個get方法,並在url文件中使用medthod的名稱。我們可以在apiview類中使用多個get方法django rest框架
我正在使用django rest框架和apiviews。我想在apiview類中使用多個get方法,並在url文件中使用medthod的名稱。我們可以在apiview類中使用多個get方法django rest框架
您可以使用viewsets而不是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'})
爲了使用它,您的網址就會像,http://base_url/ < PK>/some_get_method
,或者你可以重寫APIView這樣做的內部調度方法,
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(self, request)
return super().dispatch(request, *args, **kwargs)