2017-08-14 64 views
0

我創建了一個Django REST Webservice。 如果我運行下面的方法(刪除),我碰到一個405錯誤Django HTTP刪除方法返回405

view.py

@detail_route(methods="delete") 
def remove(self, request, id): 
    logger.debug("REST " + request.get_full_path()) 
    result = HeatingMappingModel.objects.filter(id=id).delete() 
    self.response = {"result": True, "data":result} 
    return JsonResponse(self.response, safe=False) 

urls.py

... 
    url(r'^detail/(?P<id>\d+)/$', views.HeatingMapping.as_view({'delete': 'remove'})), 
... 

這是網址我打電話http://localhost:8000/heating/detail/6/

但我不明白爲什麼,我讀該文件,但沒有找到明確的解釋。

有人可以給我一個關於這個問題的提示嗎?

+0

檢查一次。類似的問題看起來:https://stackoverflow.com/questions/26711975/django-drf-405-method-not-allowed-on-delete-operation –

+0

感謝您的快速回復,但我不明白是什麼錯誤可能。 –

+1

上面說,在Django中刪除應該總是指向一個特定的資源。 就你而言,URL以'/'結尾,從而使其充當目錄。 –

回答

0

你需要一套metods的列表:

@detail_route(methods=["delete"]) 
#     ^^^  ^^^ 
相關問題