我正在编写一个使用Django Rest Framework API的照相馆应用程序。
我使用AJAX(特别是axios)用所述API填充Django模型(图像和描述)中的数据。
问题是 - 是不是可以POST数据,而是从我的前端应用程序中删除它,我的意思是模型实例 - 就像它在管理界面中完成,甚至删除所有模型实例。
答案 0 :(得分:3)
是的,您也可以添加 .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).delete()
return Response(status=status.HTTP_204_NO_CONTENT)
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: 'http://localhost:8080/someapp/somemodel/123/',
type: 'DELETE',
data: {},
contentType:'application/json',
dataType: 'text',
error: function(result){},
success: function(result) {}
});
因此,我们针对特定的DELETE
实例(此处使用主键somemodel
执行123
方法请求,尽管您必须使用感性的方法填充自己的实例{。}}。< / p>