Axios Delete 405 (метод не разрешен) Ошибка с Django Rest Framework - PullRequest
3 голосов
/ 22 мая 2019

Я использую ReactJS в качестве клиентского веб-приложения и использую пакет axios.В своем бэкэнде я использую Django Rest Framework.Я создал Serializer для CartItem Модель:

class CartItemSerializer(serializers.ModelSerializer):
    class Meta:
        model = CartItem
        # Fields you want to be returned or posted
        fields = '__all__'

Viewset:

class CartItemViewSet(viewsets.ModelViewSet):
    queryset = CartItem.objects.all()
    serializer_class = CartItemSerializer

Я пытаюсь использовать метод удаления DRF по умолчанию в axios, используя так:

axios.delete('cart_items/', {
                headers: { Authorization: 'Token token' },
                data: {
                    id: 1,
                },
            })
            .then(res => {
                console.log(res)
            })

Когда я вызываю это, в React выдается ошибка: DELETE http://127.0.0.1:8000/cart_items/ 405 (Метод не разрешен)

Ответы [ 2 ]

4 голосов
/ 22 мая 2019

Проблема заключается в вашем URL. URL должен указывать на CartItem экземпляр (URL DetailView)

Итак, URL должен быть

<a href="http://127.0.0.1:8000/cart_items" rel="nofollow noreferrer">http://127.0.0.1:8000/cart_items</a><b>/123/</b>
Где 123 - это PK экземпляра, который нужно удалить. Также вам не нужно прикреплять payload к запросу, так как он не влияет на сторону DRF.
axios.delete(<b>'cart_items/1/'</b>, {
    headers: { Authorization: 'Token token' },

})
    .then(res => {
        console.log(res)
    })
0 голосов
/ 22 мая 2019

Ошибка в этой строке

axios.delete('cart_items/',

Вы должны указать URL-адрес конечной точки отдыха, например «localhost: port / cart_items /». если сервер работает локально на каком-либо порту

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...