前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django操作接口集编辑(十二)

Django操作接口集编辑(十二)

作者头像
zx钟
发布2019-07-19 14:25:09
4710
发布2019-07-19 14:25:09
举报
文章被收录于专栏:测试游记测试游记

昨天完成了接口集的新增,今天继续完成它的编辑和删除功能。 首先是先写前端的Javascript代码 我们点击编辑之后应该要能跳出一个对话框,然后提示我们修改因为没有实现后端代码,所以报错了。下面来看具体实现代码:

代码语言:javascript
复制
// 编辑
    let $tagEdit = $(".btn-edit");  // 1. 获取编辑按钮
    $tagEdit.click(function () {    // 2. 点击触发事件
        let _this = this;
        let sTagId = $(this).parents('tr').data('id');
        let sTagName = $(this).parents('tr').data('name');
        fAlert.alertOneInput({
            title: "编辑接口集名称",
            text: "你正在编辑 " + sTagName + " 标签",
            placeholder: "请输入接口集名称",
            value: sTagName,
            confirmCallback: function confirmCallback(inputVal) {
                console.log(inputVal);
                if (inputVal === sTagName) {
                    swal.showInputError('接口集名称未变化');
                    return false;
                }
                let sDataParams = {
                    "name": inputVal
                };

                $.ajax({
                    // 请求地址
                    url: "/callections/" + sTagId + "/",  // url尾部需要添加/
                    // 请求方式
                    type: "PUT",
                    data: JSON.stringify(sDataParams),
                    // 请求内容的数据类型(前端发给后端的格式)
                    contentType: "application/json; charset=utf-8",
                    // 响应数据的格式(后端返回给前端的格式)
                    dataType: "json",
                })
                    .done(function (res) {
                        if (res.errno === "0") {
                            // 更新标签成功
                            $(_this).parents('tr').find('td:nth-child(1)').text(inputVal);
                            swal.close();
                            message.showSuccess("接口集名称修改成功");
                        } else {
                            swal.showInputError(res.errmsg);
                        }
                    })
                    .fail(function () {
                        message.showError('服务器超时,请重试!');
                    });

            }
        });
    });

$.ajax上面部分和新增类似,都是弹出的对话框中的一些内容 其中666是通过sTagName动态加载的

弹框

下面来看一下ajax中写了啥 type: "PUT",表示我们的接口的函数需要发起PUT请求。 url: "/callections/" + sTagId + "/"表明我们发送的PUT请求的url必须是由callections和一个ID拼接而成了。 然后就是成功和失败的对应返回内容了 成功就是.done(function (res) 失败就是.fail(function () 基本上由简单的英语能力就可以理解了。毕竟代码都是人写的。 下面来写后台的代码了 老办法,打断点,查看前台到底传了什么过来

断点 然后我们需要将它从byte类型转换成字典格式 dict_data = json.loads(json_data.decode('utf8')) 然后再拿到字典里面的东西:tag_name = dict_data.get('name') 然后再从数据库里面取出id对应的内容 models.Callections.objects.only('id').filter(id=callections_id).first()

数据库 然后我们判断一下,如果和数据库里面那个id存的内容一样的话,那就提示已经存在了,如果不是那就更新上去。

代码语言:javascript
复制
        if tag:
            if tag_name and tag_name.strip():
                if not models.Callections.objects.only('id').filter(name=tag_name).exists():
                    tag.name = tag_name
                    tag.save(update_fields=['name'])
                    return to_json_data(errmsg="接口集更新成功")
                else:
                    return to_json_data(errno=Code.DATAEXIST, errmsg="接口集已存在")
            else:
                return to_json_data(errno=Code.PARAMERR, errmsg="接口集为空")

        else:
            return to_json_data(errno=Code.PARAMERR, errmsg="需要更新的接口集不存在")

放开断点后测试一遍就可以看到接口集名称修改成功~~

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-03-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试游记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档