При переопределении "execute_destroy", получающем {"detail": "Метод \" POST \ "не разрешен."} - PullRequest
0 голосов
/ 14 марта 2019

Новый для Django и пытается реализовать REST API.Вот код:

из views.py

class reg_event(generics.CreateAPIView):
     queryset = event_registration_stub.objects.all()
     serializer_class = serializers.EventRegistrationStubSerializer

     def perform_create(self, serializer):
         serializer.save(parent_volunteer=self.request.user)


class reg_event_delete(generics.DestroyAPIView):
     queryset = event_registration_stub.objects.all()
     serializer_class = serializers.EventRegistrationStubSerializer

def perform_destroy(self, serializer):
    instance.delete(parent_volunteer=self.request.user, parent_event=self.kwargs["parent_event"])

Вот сериализатор:

class  EventRegistrationStubSerializer(serializers.ModelSerializer):
      parent_volunteer = serializers.ReadOnlyField(source='parent_volunteer.id')
     class Meta:
         model = event_registration_stub
         fields = ('id', 'parent_event', 'parent_volunteer')

И из urls.py

    url(r'^register_user_for_event/$', views.reg_event.as_view(), name='register_user_for_event'),
    url(r'^delete_user_for_event/$', views.reg_event_delete.as_view(), name='delete_user_for_event'),

зарегистрировать пользователя для событийных работ.Однако следующее:

   curl -X POST -d "parent_event=1" -H 'Authorization: Token 21cc749c43bf80f27598987cd5a9926d988ba64c' http://127.0.0.1:8000/api/delete_user_for_event/

возвращает

"POST /api/delete_user_for_event/ HTTP/1.1" 405 41

Я пытался посмотреть 405 Метод POST не разрешен

Но я не уверенчто не так с моими URL.Моя работа уничтожить неправильно?Любая помощь будет оценена.

1 Ответ

1 голос
/ 14 марта 2019

Если вы хотите отправить destroy запрос с curl, вы должны использовать:

curl -X DELETE ...

generics.DestroyAPIView имеет только метод удаления.Поэтому при отправке почтового запроса вы получаете ошибку 405

...