Django REST Framework ApiView не позволяет УДАЛИТЬ - PullRequest
0 голосов
/ 16 марта 2020

Я новичок в Django, и у меня возникла проблема с отправкой запроса DELETE в представление на основе классов, которое наследуется от APIView.

Вот мой класс:

class PageDetail(APIView):


    def get(self, request, pk):
        page = get_object_or_404(Page, pk=pk)
        data = PageSerializer(page).data
        return Response(data)

    def put(self, request, pk):

            stream = io.BytesIO(request.body)
            response = JSONParser().parse(stream)

            page = Page.objects.get(pk=pk)
            page.title = response.get('title', page.title)
            page.content = response.get('content', page.content)
            user = User.objects.get(pk=response.get('author', page.author))
            page.author = user
            page.save()

            return HttpResponseRedirect(reverse('pages_detail', args=(page.id,)))


    def delete(self, request, pk):
            page = Page.objects.get(pk=pk)
            page.delete()

            return HttpResponseRedirect(reverse('pages_list'))

Когда я делаю запрос DELETE, ресурс удаляется, но страница отвечает сообщением:

{'detail':'Method 'DELETE' not allowed.'}

Хотя в заголовке у меня есть:

Разрешить: GET, PUT, DELETE, ГОЛОВА, ВАРИАНТЫ

У кого-нибудь есть идеи?

...