Django操作接口集删除(十三)

今天是删除接口集的操作,删除的话可以做成物理删除和逻辑删除。

let $tagDel = $(".btn-del");  // 1. 获取删除按钮
    $tagDel.click(function () {   // 2. 点击触发事件
        let _this = this;
        let sTagId = $(this).parents('tr').data('id');
        let sTagName = $(this).parents('tr').data('name');
        fAlert.alertConfirm({
            title: "确定删除 " + sTagName + " 接口集吗?",
            type: "error",
            confirmText: "确认删除",
            cancelText: "取消删除",
            confirmCallback: function confirmCallback() {

                $.ajax({
                    // 请求地址
                    url: "/callections/" + sTagId + "/",  // url尾部需要添加/
                    // 请求方式
                    type: "DELETE",
                    dataType: "json",
                })
                    .done(function (res) {
                        if (res.errno === "0") {
                            // 更新标签成功
                            message.showSuccess("接口集删除成功");
                            $(_this).parents('tr').remove();
                        } else {
                            swal.showInputError(res.errmsg);
                        }
                    })
                    .fail(function () {
                        message.showError('服务器超时,请重试!');
                    });
            }
        });
    });

从ajax中可以看出请求的方式是DELETE,url地址还是之前那个带id的地址。

640?wx_fmt=png
数据库

可以看到又一个is_delete字段,我们通过改变它来改变页面的展示
    def delete(self, request, tag_id):
        tag = models.Tag.objects.only('id').filter(id=tag_id).first()
        if tag:
            # 真删
            # tag.delete()
            tag.is_delete = True
            tag.save(update_fields=['is_delete'])
            return to_json_data(errmsg="标签删除成功")
        else:
            return to_json_data(errno=Code.PARAMERR, errmsg="需要删除的标签不存在")

具体它为什么会改变页面展示我们进行断点调试

640?wx_fmt=png
断点

查看is_delete是0的时候的调试内容
640?wx_fmt=png
存在

查看is_delete是1的时候的调试内容
640?wx_fmt=png
不存在

发现两者返回的东西居然是一样的。
好吧原来是代码写错了。
我们的数据库查询这一部分缺少了筛检,增加is_delete的判断就好了
640?wx_fmt=png
修改数据库查询

tags = models.Callections.objects.values('id', 'name').filter(is_delete=False).order_by('update_time')
增加了is_delete=False的判断,这下我们在调试一遍
640?wx_fmt=png
再次调试

这样就可以看到返回的内容是空了
Django给我们自动生成的Sql语句是query里面的那句
SELECT `tb_tag`.`id`, `tb_tag`.`name` FROM `tb_tag` WHERE 
`tb_tag`.`is_delete` = False ORDER BY `tb_tag`.`update_time` ASC

好了好了,这就完成了其实数据还在的逻辑删除了。

欢迎关注我的公众号:zx94_11

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值