python django学习

from Mic

task_list.html

{% extends 'layout.html' %}


{% block content %}
    <div class="container">
        <div class="panel panel-default">
    
            <div class="panel-heading">表单</div>
            <div class="panel-body">
    
                <form  id="formAdd">
                    <div class="clearfix">
                        {% for field in form %}
                        <div class="col-xs-6">
                            <div class="form-group" style="position: relative;margin-bottom: 20px;">
                                <label>{{ field.label }}</label>
                                {{ field }}
                                <span class="error-msg" style="color: red;position:absolute;"></span>
    
                            
                            </div>
                        </div>
                        {% endfor %}
                        <div class="col-xs-12">
                            <button id="btnAdd" type="button" class="btn btn-primary">提 交</button>
                        </div>
                    </div>
            </div>
          
            </form>
    
        </div>
  
    
    
    
    
        <hr />
        <h1>Ajax知识</h1>
    
    
    
        <h3>示例1</h3>
        <input id="btn1" type="button" class="btn btn-primary" value="点击1" />
        <h3>示例2</h3>
        <input id="txtUser" type="text" placeholder="姓名">
        <input id="txtAge" type="text" placeholder="年龄">
        <input id="btn2" type="button" class="btn btn-primary" value="点击2" />
    
        <h3>示例3</h3>
        <form id="form3">
            <input name="User" type="text" placeholder="姓名">
            <input name="Age" type="text" placeholder="年龄">
            <input name="Email" type="text" placeholder="邮箱">
            <input name="More" type="text" placeholder="介绍">
        </form>
        <input id="btn3" type="button" class="btn btn-primary" value="点击3" />
    
    
    </div>
{% endblock %}

{% block js %}
    <script type="text/javascript">
        $(function () {
            // 页面框架加载完成之后代码自动执行
            bindBtn1Event();
            bindBtn2Event();
            bindBtn3Event();
            bindBtnAddEvent();

        })

        function bindBtn1Event() {
            $("#btn1").click(function () {  // btn1是表单id
                $.ajax({
                    url: '/task/ajax/',
                    type: "post",
                    data: {
                        n1: 123,
                        n2: 456
                    },
                    dataType:"JSON",
                    success: function (res) {
                        console.log(res);
                        console.log("111");
                        console.log(res.status);
                        console.log(res.data);
                    }
                })
            })
        }

        function bindBtn2Event(){
            $("#btn2").click(function () {  // btn1是表单id
                $.ajax({
                    url: '/task/ajax/',
                    type: "post",
                    data: {
                        name: $("#txtUser").val(),
                        age: $("#txtAge").val()
                    },
                    dataType:"JSON",
                    success: function (res) {
                        console.log(res);
                        console.log("111");
                        console.log(res.status);
                        console.log(res.data);
                    }
                })
            })
        }

        function bindBtn3Event(){
            $("#btn3").click(function () {  // btn1是表单id
                $.ajax({
                    url: '/task/ajax/',
                    type: "post",
                    data: $("#form3").serialize(),
                    dataType:"JSON",
                    success: function (res) {
                        console.log(res);
                        console.log("111");
                        console.log(res.status);
                        console.log(res.data);
                    }
                })
            })
        }

        function bindBtnAddEvent(){
            $("#btnAdd").click(function () {  // btn1是表单id
                $.ajax({
                    url: '/task/add/',
                    type: "post",
                    data: $("#formAdd").serialize(),
                    dataType:"JSON",
                    success: function (res) {
                       if (res.status){
                        alert("添加成功");
                       }
                       else{
                        // console.log("77777");
                        // console.log(res.error);
                        // ///zheli
                        // console.log("88888");
                        $.each(res.error,function(name,data){
                            console.log(name,data);
                            $("#id_"+name).next().text(data[0]);
                        })

                       }
                    }
                })
            })
        }
    </script>
{% endblock %}

view.py


################################################################

from django.views.decorators.csrf import csrf_exempt
from django import forms
import json
@csrf_exempt
def task_ajax(request): 
    print(request.POST)
    data_dict={"status":"yyyes","data":[11,22,33,44]}

    return HttpResponse(json.dumps(data_dict))


class TaskModelForm(BootstrapModelForm):
    class Meta:
        model=models.Task
        fields="__all__"
        widgets={
            "detail":forms.TextInput
            #"detail":forms.Textarea
        }


def task_list(request):
    form=TaskModelForm()
    return render(request,"task_list.html",{"form":form})

@csrf_exempt
def task_add(request):
    print(request.POST)
    form=TaskModelForm(data=request.POST)
    if form.is_valid():
        form.save()
        print("-------------------------11111")
        data_dict={"status":True}
        return HttpResponse(json.dumps(data_dict))


    data_dict={"status":False,"error":form.errors}

    return HttpResponse(json.dumps(data_dict,ensure_ascii=False))


###################################################################

models.py

    
class Task(models.Model):
    level_choices=(
        (1,"紧急"),
        (2,"重要"),
        (3,"一般")
    )
    level=models.SmallIntegerField(verbose_name="级别",choices=level_choices,default=1)
    title=models.CharField(verbose_name="标题",max_length=64)
    detail=models.TextField(verbose_name="详细信息")
    user=models.ForeignKey(verbose_name="负责人",to="Admin",to_field="id",on_delete=models.CASCADE)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值