首页 > 其他分享 >django——Ajax(删除)

django——Ajax(删除)

时间:2023-10-20 20:55:22浏览次数:27  
标签:function uid 删除 django Ajax ID id delete

1. 在 urls.py 中编辑url

path('order_delete',views.order_delete),

2. 在 views.py 中编写后端代码

def order_delete(request):
    uid = request.GET.get('uid')
    exists = models.Order.objects.filter(id=uid).exists()
    if not exists:
        return JsonResponse({"status": False, 'error': '数据不存在'})

    models.Order.objects.filter(id=uid).delete()
    return JsonResponse({"status": True})

3. 编写 HTML 前端代码

<div align="center">
<h1>数据列表</h1>
<hr>
{% csrf_token %}
    <table class="table table-hover">

        <thead>
        <tr>
            <td>id</td>
            <td>订单号</td>
            <td>名称</td>
            <td>价格</td>
            <td>状态</td>
            <td>管理员</td>
            <td>操作</td>
        </tr>
        </thead>
        <tbody>
        {% for i in obj %}
            <tr uid="{{ i.id }}">
                <td>{{ i.id }}</td>
                <td>{{ i.odi }}</td>
                <td>{{ i.title }}</td>
                <td>{{ i.price }}</td>
                <td>{{ i.get_status_display }}</td>
                <td>{{ i.admin.account }}</td>
                <td>
                    <input uid="{{ i.id }}" class="btn btn-danger btn-xs  btn-delete" type="button" value="删除" >
                </td>
            </tr>
        {% endfor %}
        </tbody>
    </table>
</div>
<!-- 删除对话框 -->
<div class="modal fade" id="deleteModal" tabindex="-1" role="dialog">
  <div class="modal-dialog" role="document">

     <div class="alert alert-danger alert-dismissible fade in" role="alert">
      <h4>是否确认删除?</h4>
      <p style="text-align: right;">
        <button id="btnConfirmDelete" type="button" class="btn btn-danger">确认</button>
        <button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
      </p>
    </div>
  </div><!-- /.modal-dialog -->
</div><!-- /.modal -->


<script src="{% static 'jquery-3.7.0.min.js' %}"></script>
<script src="{% static '/bootstrap/js/bootstrap.min.js' %}"></script>
    // 全局变量
    var DELETE_ID;
    $(function () {
        bindBtnDeleteEvent();
        bindBtnConfirmDeleteEvent();
    })

    function bindBtnDeleteEvent() {
        $('.btn-delete').click(function () {
            $('#deleteModal').modal('show');
            // 获取ID 并赋值给全局变量
            DELETE_ID=$(this).attr("uid");
        });

    }
    
    function bindBtnConfirmDeleteEvent(){
        $("#btnConfirmDelete").click(function () {
            // 点击确认删除按钮,将全局变量中要删除的id发送到后台
            $.ajax({
                url:"/order_delete/",
                type:"GET",
                data: {
                    uid:DELETE_ID
                },
                dataType: "JSON",
                success:function (res) {
                    if(res.status){
                        alert("删除成功");
                        //关闭对话框
                        $('#deleteModal').modal('hide');
                        // 当前一行数据删除(js)
                       // $("tr[uid='"+ DELETE_ID + "']").remove();
                        // 要删除的id置空
                        DELETE_ID=0;
                        // 页面刷新
                        location.reload();
                    }else {
                        // 删除失败
                        alert(res.error);
                    }
                }
            })
        })
    }

 

标签:function,uid,删除,django,Ajax,ID,id,delete
From: https://www.cnblogs.com/p4567/p/17777981.html

相关文章

  • redis其他操作、redis管道、django中使用redis、django缓存、celery介绍、补充单例
    redis其他操作'''delete(*names)exists(name)keys(pattern='*')expire(name,time)rename(src,dst)move(name,db))randomkey()type(name)'''#redis的key值,最大可以是多少?最大不超过512M一般1KB#redis的value值,最大可以是多少?最大不超过512M......
  • 卷影副本(Volume Shadow Copy)是Windows操作系统提供的一项备份和恢复功能。它允许在文
    卷影副本(VolumeShadowCopy)是Windows操作系统提供的一项备份和恢复功能。它允许在文件被修改或删除之前,创建文件或文件夹的副本,以便在需要时进行数据的还原和恢复。卷影副本主要有以下作用和优势:数据保护和恢复能力:卷影副本可以保护用户的数据免受意外的文件修改、删除和损坏......
  • [Leetcode] 0083. 删除排序链表中的重复元素
    83.删除排序链表中的重复元素题目描述给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回已排序的链表 。 示例1:输入:head=[1,1,2]输出:[1,2]示例2:输入:head=[1,1,2,3,3]输出:[1,2,3] 提示:链表中节点数目在范围[0,300]......
  • Django名称空间
    当多个应用出现相同的别名时,反向解析的时候可能会出现冲突 解决办法: 方式一:利用名称空间的概念url(r'^app01/',include('app01.urls',namespaces='app01'))url(r'^index/$',views.index,name='xxx')reverse('app01:xxx'){%url'app01:......
  • Django路由分发
    在Django中,每一个应用都可以有自己独立的templates模板文件夹、static静态文件夹、urls.py ——这就意味着基于Django实现多人分组开发时十分方便的,每个人只需要专注于开发自己的app即可当Django路由匹配非常多时,总路由可以不再操作匹配和触发函数运行,而只需要做一步分发......
  • Python高频面试题——如何在字符串中删除指定字符,掌握strip()、replace()和re.sub ()
    关于python删除字符串是面试python测试开发工程师的一个经典问题。问题很简单,但是一下子就能测试出来被面试者是否能够熟练的进行python相关编码工作!对于有些临时抱佛脚的同学来讲,一看删除,很自然就说用remove、del相关方法,听到这里,就知道面试者根本不知道这个答案啦!因为对于这个问......
  • cmd删除巨量本地文件下的文件(windows)
    当文件夹中的文件数量非常庞大时,尤其是在老旧或资源有限的系统上,直接通过图形用户界面(GUI)来删除文件可能会非常缓慢甚至导致系统卡死。作为一名程序员,当然要想更底层的办法解决啦。这种情况下,可以尝试使用命令行来高效、快速地删除大量文件:.打开命令提示符:按Win+R键打开......
  • Sitecore 里删除 Item 报错 Could not create SSL/TLS secure channel.
    解决方法:前往mmc里添加你的域名win+r输入mmc打开下图面板;......
  • django——Ajax(添加)
    1.创建ModelclassOrder(models.Model):odi=models.CharField(verbose_name='订单号',max_length=64)title=models.CharField(verbose_name='名称',max_length=32)price=models.IntegerField(verbose_name='价格')status......
  • Web前端使用 $.ajax 和 XMLHttpRequest 请求的区别
    1、首先是我使用XMLHttpRequest进行后台请求,我在请求前。会把按钮置为灰色。 $('button[type="generateProductBop"]').css("background-color","#d4d4d4");在最后的finally才把按钮,重新置换回来原来的颜色$('button[type="generateProductBop"]').css(......