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">×</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 %}