Да, вы также можете, например, добавить реализацию .delete(..)
:
class SomeModelDetail(APIView):
def get_object(self, pk):
try:
return SomeModel.objects.get(pk=pk)
except SomeModel.DoesNotExist:
raise Http404
# ...
def delete(self, request, pk, format=None):
self.get_object(pk)<b>.delete()</b>
return Response(status=<b>status.HTTP_204_NO_CONTENT</b>)
Таким образом, ответ HTTP_204_NO_CONTENT
является кодом состояния, который иногда используется для указания того, чтосоответствующий объект теперь удален.
Если затем добавить это представление в URL:
from django.conf.urls import url
from rest_framework.urlpatterns import format_suffix_patterns
from app import views
urlpatterns = [
url(r'^somemodel/(?P<pk>[0-9]+)/$', views.SomeModelDetail.as_view()),
]
format_suffix_patterns(urlpatterns)
Затем мы можем сделать DELETE
AJAX-вызов:
# JavaScript (Ajax request)
$.ajax({
url: <b>'http://localhost:8080/someapp/somemodel/123/'</b>,
type: <b>'DELETE'</b>,
data: {},
contentType:'application/json',
dataType: 'text',
error: function(result){},
success: function(result) {}
});
Таким образом, мы выполняем запрос метода DELETE
для конкретного экземпляра somemodel
(здесь с первичным ключом 123
, хотя вы должны заполнить его самим собой чувственным).