我正在使用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(不允许使用方法)
答案 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 /” 如果服务器在某个端口上本地运行