从 axios 发送时找不到 Django REST 方法销毁获取 404

Django REST Method Destroy getting 404 not found when sending from axios

我一直在尝试和搜索很多,但显然没有人遇到过这个问题。 所以问题是我正在尝试发送一个 axios 请求以使用正确的 api ur 和密钥进行删除。但是DRFModel.ViewSet没有找到PK合适的函数。

后端 这是我的 view.py 文件:

class GigList(ViewSet):  
    def destroy(self, request, pk=None):  
        print(pk)  
        Gig.objects.filter(user=request.user, id=request.id).delete()  
        return Response

urls.py:

router = DefaultRouter()
router.register('api', views.GigList, basename='user')

前端 这是axios执行的js文件:

    async deleteGig(id) {
        const response = await api.delete(`api/destroy/${id}`  + `/`,TokenService.getLocalAccessTokenHeader() );
        return response
    }

Django 输出:

Not Found: /api/destroy/17/
[09/Jan/2022 23:44:46] "DELETE /api/destroy/17/ HTTP/1.1" 404 8064

如果有人对此有任何提示或解决方案,我将不胜感激,谢谢大家

docs所示,销毁端点与retrieve/update/partial_update端点类似,主要区别在于http方法。所以都用api/17,viewset根据http的方法知道使用哪个action

所以改变:

await api.delete(`api/destroy/${id}` + `/`,

仅:

await api.delete(`api/${id}` + `/`,