Django rest framework URL шаблон CRUD операции в одном классе GenericAPIView

Я создавал представление класса с помощью GenericAPIView в Django rest framework. и определял их URL, но на Django swagger каждый URL показывает все методы.

#views.py

class AmenitiesView(ListModelMixin, RetrieveModelMixin, CreateModelMixin, DestroyModelMixin, UpdateModelMixin, GenericAPIView):
    serializer_class = AmenitiesSerializer
    queryset = Amenities.objects.all()

    def get(self, request, *args, **kwargs):
        many, queryset = True, self.filter_queryset(self.get_queryset())
        if 'pk' in kwargs and kwargs['pk']:
            many, queryset = False, self.get_object()
        serializer = self.get_serializer(queryset, many=many)
        return Response({"data": serializer.data, "message": "Successfully Get Amenities", "isSuccess": True, "status": 200}, status=200)

    def post(self, request, *args, **kwargs):
        return self.create(request, *args, **kwargs)

    def put(self, request, *args, **kwargs):
        return self.update(request, *args, **kwargs)

    def delete(self, request, *args, **kwargs):
        return self.destroy(request, *args, **kwargs)

#urls.py
urlpatterns = [
  path('amenities/get/', AmenitiesView.as_view()),
  path('amenities/get/<int:pk>/', AmenitiesView.as_view()),
  path('amenities/create/', AmenitiesView.as_view()),
  path('amenities/edit/<int:pk>/', AmenitiesView.as_view()),
  path('amenities/delete/<int:pk>/', AmenitiesView.as_view()),
]

like this every URL has shown all methods

как определить URL с методом, например, если URL 'amenities/get/', то swagger покажет только метод get, а если URL 'amenities/create/', то только метод post, показанный на этом url.

Вернуться на верх