1、实现批量删除功能的前提条件
1)需要有复选框,可以进行多选/全选操作。
2)每条记录的自增序列id或者唯一主键的值传输到复选框中,设:check_id="增序列id或者唯一主键"。
3) 将复选框的类选择器设为“checkOne”。
2、实现批量删除的步骤:
1)当前端页面选择多个复选框时,js遍历获取被选中的复选框,获取对应的自增序列id或者唯一主键,并将id写入数组中。
// 创建数组类型,用于接收被选中的复选框的id
var ids = [];
// 遍历被选中的复选框,'.checkOne:checked'说明复选框被选中
$.each($('.checkOne:checked'),function () {
// 获取复选框对应的自增序列id或者唯一主键
id = $(this).attr("check_id");
// 将获取到的id写入到数组中
ids.push(id)
});
2)判断ids长度是否大于0,如果大于0,说明有复选框被选中,可以被批量删除,然后将获取到的ids数组传入到后端。
if(ids.length != 0){
if(confirm("确定删除吗?")){
$.ajax({
url:"/product/deleteProductByIdList/",
type:"get",
data:{"ids":ids},
success:function(result){
alert(result.msg.info);
}
});
}
}else {
alert('请选择至少一条数据!');
}
3)id数组传入到后端,后端处理删除数据库中对应id的记录。
# 根据id列表批量删除数据
def deleteProductByIdList(request):
mod = Product.objects
# 获取前端传来的id数组
idlist = request.GET.getlist('ids[]')
try:
# 遍历id数组
for id in idlist:
# 删除对应id的记录
mod.get(product_id=id).delete()
context = {"info": "删除成功"}
except Exception as res:
context = {"info": str(res)}
return JsonResponse({"msg": context})
其中:urls.py内容
from django.urls import path
from product import views
urlpatterns = [
path('deleteProductByIdList/',views.deleteProductByIdList,name='deleteProductByIdList'),# 批量删除数据
]