2022暑期实践(Django教程学习记录)(第六周1)P60表结构的设计

P60表结构的设计

class Order(models.Model):
    """订单"""
    oid = models.CharField(verbose_name="订单号", max_length=64)
    title = models.CharField(verbose_name="名称", max_length=64)
    price = models.IntegerField(verbose_name="价格")
    status_choices = (
        (1, "待支付"),
        (2, "已支付"),
    )
    status = models.SmallIntegerField(verbose_name="状态", choices=status_choices)
    admin = models.ForeignKey(verbose_name="管理员", to="Admin", on_delete=models.CASCADE)

P61ajax提交数据添加订单

@csrf_exempt
def order_add(request):
    from django.http import JsonResponse
    form = OrderModelForm(data=request.POST)
    if form.is_valid():
        # 增加一部分不是用户输入的值,后台自定义的值
        import random
        from datetime import datetime
        form.instance.oid = datetime.now().strftime("%Y%m%d%H%M%S")+str(random.randint(1000, 9999))
        form.save()
        return JsonResponse({"status": True})
    # else:
    return JsonResponse({"status": False, "error": form.errors})
{% extends 'layout.html' %}

{% block content %}
    <div class="container">
        <div>
            <input type="button" value="新建订单1" class="btn btn-primary" data-toggle="modal" data-target="#myModal">
            <input id="btnAdd" type="button" value="新建订单2" class="btn btn-primary">
        </div>

    </div>
    <!-- Modal -->
    <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
        <div class="modal-dialog" role="document">
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
                            aria-hidden="true">&times;</span></button>
                    <h4 class="modal-title" id="myModalLabel">新建订单</h4>
                </div>
                <div class="modal-body">
                    <form id="formAdd">
                        <div class="clearfix">
                            {% for field in form %}
                                <div class="col-xs-12">
                                    <div class="form-group" style="position: relative; margin-bottom: 20px;">
                                        <label>
                                            {{ field.label }}
                                            <span style="color: red">{{ field.errors.0 }}</span>
                                        </label>
                                        {{ field }}
                                        <span class="error_msg" style="color: red; position: absolute;"></span>
                                    </div>
                                </div>
                            {% endfor %}
                        </div>
                    </form>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
                    <button id="btnSave" type="button" class="btn btn-primary">保存</button>
                </div>
            </div>
        </div>
    </div>
{% endblock %}

{% block js %}
    <script type="text/javascript">
        $(function () {
            bindBtnAddEvent();
            bindBtnSaveEvent();
        })

        function bindBtnAddEvent() {
            $('#btnAdd').click(function () {
                //点击新建按钮就显示对话框
                $('#myModal').modal('show');
            })
        }

        function bindBtnSaveEvent() {
            $('#btnSave').click(function () {
                {#alert("保存");#}
                // 清除错误信息
                $(".error_msg").empty();
                $.ajax({
                    url: "/order_add/",
                    type: "post",
                    data: $("#formAdd").serialize(),
                    success: function (res) {
                        console.log(res);
                        if (res.status) {
                            alert("添加成功");
                        } else {
                            // 把错误信息显示在对话框中
                            $.each(res.error, function (name, errorList) {
                                $("#id_" + name).next().text(errorList[0]);
                            })
                        }
                    }
                })
            })
        }
    </script>
{% endblock %}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值