我正在尝试在Django Rest中删除记录。
views.py: -
class ItemPartialView(generics.RetrieveUpdateDestroyAPIView):
queryset = itemlist.objects.all()
serializer_class = ItemlistSerializer
def put(self, request, *args, **kwargs):
return self.partial_update(request, *args, **kwargs)
def destroy(self, request, *args, **kwargs):
obj = self.get_object()
if obj.survey:
return Response(data={'message': "Too late to delete"},
status=status.HTTP_400_BAD_REQUEST)
self.perform_destroy(obj)
return Response(status=status.HTTP_204_NO_CONTENT)
urls.py: -
urlpatterns = {
url(r'^itemlists/$', ItemView.as_view(), name="create"),
url(r'^itemlists/(?P<pk>\d+)/$', ItemPartialUpdateView.as_view(), name="update")
}
现在,当我向itemlists/1/
发送DELETE请求时,它不会删除id = 1
的记录
错误显示Method DELETE not allowed
(CREATE,READ,UPDATE正在工作,除了DELETE,所以我不认为这是与cors相关的问题)。
答案 0 :(得分:0)
您似乎为itemlists/1/
定义了2条路线。你的代码正在击中第一个只有部分更新(PUT / PATCH)支持从名称判断的代码。
您应该在同一个类上创建一个同时包含update和destroy的视图。这应该工作。
答案 1 :(得分:0)
据我所知-您不要在网址中使用ItemPartialView
。
您改用ItemPartialUpdateView
,所以我的猜测是此视图不支持删除。