我使用DataTables创建了一个可选行复选框。到目前为止,我已经为此创建了一个很好的UpdateView,因此编辑项目很好。
我该如何做"删除所选项目"使用那个按钮?这是我到目前为止所做的事情。
数据表.js脚本:
$(function () {
$('#table-part').DataTable({
dom: 'Bfrtip',
responsive: true,
buttons: {
buttons: [
{ extend: 'selectAll', className: 'bg-red waves-effect' },
{ extend: 'selectNone', className: 'bg-red waves-effect' },
{ extend: 'copy', className: 'bg-red waves-effect' },
{ extend: 'csv', className: 'bg-red waves-effect' },
{ extend: 'excel', className: 'bg-green waves-effect' },
{ extend: 'print', className: 'bg-red waves-effect' },
],
},
'columnDefs': [{
'targets': 0,
'orderable': false,
'className': 'select-checkbox',
'checkboxes': {
'selectRow': true
}
}],
'select': {
'style': 'multi',
},
'order': [
[1, 'asc']
]
});
});
我对如何在Django中使用基于类的DeleteView感到困惑。我需要根据我选择的行获取所有id的内容,而且,我需要像条件检查一样,如果我没有选择要删除的行,则删除功能不会继续,或者它会被禁用,或类似的东西。
非常感谢你!
答案 0 :(得分:1)
试试这个,
views.py
from rest_framework import generics
class YourDeleteView(generics.DestroyAPIView):
serializer_class = YourSerializer
queryset = YourModel.objects.all()
并根据以下内容更改urls.py
,
urlpatterns = [
url(r'endpoint/(?P<pk>\d+)', YourDeleteView.as_view())
]
因此,删除api将是/api/v1/endpoint/{instance_id_to_be_deleted}/
,HTTP DELETE
方法为
例如:
import requests
requests.delete('http://host/api/v1/endpoint/1')