Django学习日记-04j补充单表编辑部分

Posted kangkang1999

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django学习日记-04j补充单表编辑部分相关的知识,希望对你有一定的参考价值。

JS阻止默认事件发生

    -是指在html当一个a标签同时存在href超链接和onclick事件函数,点击a标签默认优先执行事件函数,然后再执行href超链接

    -如果不想要执行herf超链接则在onclick中加入return  后在事件函数中添加 return false

 <a href="http://www.baidu.com" onclick="return showmodal()"> 对话框添加</a> {# 包含事件 #}
funtion showmodal(){
     xxxx
     return false }

单表编辑 

    1,参考新url的方式 先解决原本数据的填充

      可以在showmodal函数中查找 通过当前标签向上推出数据

                   a标记当前位置

<a onclick="showmodal2(this)">编辑添框加</a>

        b找到当前位置

            var row= $(ths).parent().prevAll(); //找到目标位置   var差不多声明

        c打印目标内容

         var content = $(row[0]).text();      // 打印出目标内容
            console.log(content);            //console打印

        d填入对应标签

     $(#edit_title).val(content);       //内容填入

     2,在url.py中写入对应的url 

    3 ,在views中写入编辑函数

      -依旧用HttpResponse返回    可以采用一个对象字典 返回信息

      -对象字典的作用是可以更加直观  try except 正常发送 如果失败 发送 False 和 error/

      -json。dumps的作业是将字典转化为字符串

def modal_edit_class(request):
    ret = {status:True ,message:None}
    try:
        id = request.POST.get(id)
        title = request.POST.get(title)
        sqlhelp.get_commit(update class set title=%s where id=%s, [title, id, ])
    except Exception as e:
        ret[status] = False
        ret[message] = "eroor"
    import json
    return HttpResponse(json.dumps(ret))

    4,在html写Ajax

      -填入客户端输入的数据/声明

 ·      var id =$(#edit_id).val();
            var title = $(#edit_title).val();
            console.log(id,title);//打印

       -三步走 url ,type,data

 $.ajax({
                url:/modal_edit_class/,
                type:POST,
                data:{id:id,title:title},
                success:function (arg) {
                    console.log(arg);   //打印返回结果参数arg arg是字符串类型
                    {#JSON.parse(字符串)  //把字符串转化为字典对象#}
                    {#JSON.stringify(对象) //把字典对象转化为字符串#}
                    arg =JSON.parse(arg);
                    if (arg.status){
                        location.reload();//相当于location.href=/class/ 当前页面刷新

                    }else{
                        alert(arg.message)
                    }

总结:-对于单表编辑部分应该注意数据库本身的数据显示,用(this)定位找出标签位置 ,为防止出现BUG可以多次的用console.lolg(xxx)进行测试,在我个人的理解中var xx=$(xx).xxx差不多是声明一个常量  $(‘#xx‘) 是声明一个标签 .val()是填入数据

 -在views函数中可以用对象字典是形式试错 try except注意字典和字符串之间的转化,因为httpresponse只返回字符串所以必须转化

 

以上是关于Django学习日记-04j补充单表编辑部分的主要内容,如果未能解决你的问题,请参考以下文章

Django学习日记-08回顾--温故知新

07: Django 学习补充

Mysql学习日记-06索引的补充

Mysql学习日记-02外键 ,索引, sql语句的补充

Django学习第6篇:Django之ORM单表操作(增删改查)

Django学习第6篇:Django之ORM单表操作(增删改查)