Получать и удалять во фреймворке 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>/