2017-08-14 2 views
0

Ich habe einen Django REST Webservice erstellt. Wenn ich die folgende Methode (löschen) laufen, laufen ich in einen 405 FehlerDjango HTTP delete Methode gibt 405 zurück

meine 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'})), 
... 

Dies ist die URL Ich rufe http://localhost:8000/heating/detail/6/

Aber ich verstehe nicht warum, ich lese die Dokumentation, aber keine klare Erklärung finden.

Kann mir jemand einen Hinweis auf dieses Problem geben?

+0

prüfen dieses eine Mal. Ähnliche Frage scheint es: https://stackoverflow.com/questions/26711975/django-drf-405-method-not-allowed-on-delete-operation –

+0

danke für Ihre schnelle Antwort, aber ich verstehe nicht, was der Fehler ist könnte sein. –

+1

Das obige besagt, dass django löschen immer auf eine bestimmte Ressource zeigen sollte. In Ihrem Fall endet die URL mit einem '/', wodurch sie als Verzeichnis fungiert. –

Antwort

0

Sie benötigen Satz metods als Liste:

@detail_route(methods=["delete"]) 
#     ^^^  ^^^ 
Verwandte Themen