Получать и удалять во фреймворке Django

я хочу создать класс ModelViewSet, который получает id из url, например

localhost/id

и на основе этого id я могу либо показать объект с соответствующим id, либо удалить его. но у меня проблемы с передачей id в url. мое представление выглядит так:

class delete_or_show_View(viewsets.ModelViewSet):
    serializer_class = ObjectSerializer
    permission_classes = [permissions.IsAuthenticated]
    http_method_names = ['get', 'delete']

    def get_queryset(self,mid):
        #Show the object


    def destroy(self, mid):
        #delete the object

и мой url выглядит так

router.register('(?P<object_id>\d+)', views.delete_or_show_View, basename='do_stuff')

Я получаю ошибки о недостающих аргументах или о том, что метод удаления не разрешен. пожалуйста, если кто-то может подсказать мне, как я могу сделать это правильно и объяснить, это будет здорово. спасибо

class DeleteOrShowView(viewsets.ModelViewSet):
    serializer_class = ObjectSerializer
    permission_classes = [permissions.IsAuthenticated]
    queryset = Model.objects.all()
    http_method_names = ['get', 'delete']

затем обновите urls.py как

router = DefaultRouter()
router.register('show-delete', views.DeleteOrShowView, basename='do_stuff')

теперь вы можете просто передать этот url при обращении к этому api show-delete/<id>/

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