Django Rest Framework的Axios删除405(不允许使用方法)错误

时间:2019-05-22 06:30:42

标签: django reactjs django-rest-framework axios

我正在使用ReactJS作为客户端Web应用程序,并且正在使用axios包。在后端,我正在使用Django Rest Framework。我为CartItem模型创建了序列化器:

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

视图集:

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

我正在尝试使用axios在DRF中使用默认的DRF删除方法:

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 个答案:

答案 0 :(得分:4)

问题出在您的URL上。该URL应指向 CartItem实例 DetailView 的URL)

因此,URL应该是

http://127.0.0.1:8000/cart_items/123/
其中, 123 是要删除的实例的 PK 。另外,您不必将payload附加到请求,因为它对DRF端没有影响。


axios.delete('cart_items/1/', {
    headers: { Authorization: 'Token token' },

})
    .then(res => {
        console.log(res)
    })

答案 1 :(得分:0)

此行中有错误

axios.delete('cart_items/',

您必须提供其余端点的网址,例如“ localhost:port / cart_items /” 如果服务器在某个端口上本地运行