从 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}` + `/`,
我一直在尝试和搜索很多,但显然没有人遇到过这个问题。 所以问题是我正在尝试发送一个 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}` + `/`,