Django 对表格进行批量删除操作

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'),# 批量删除数据
]

  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值