删除DataTable和Django中的选定行

时间:2018-02-19 02:13:57

标签: python django datatables

我使用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']
        ]
    });
});

这是它的样子: enter image description here

我对如何在Django中使用基于类的DeleteView感到困惑。我需要根据我选择的行获取所有id的内容,而且,我需要像条件检查一样,如果我没有选择要删除的行,则删除功能不会继续,或者它会被禁用,或类似的东西。

非常感谢你!

1 个答案:

答案 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')