09-项目开发-7_学习day09
🚀 ==继续上节Ajax案例进行==
在任务提交页面下方显示提交的任务列表
提交成功后,弹出“添加成功”的弹窗,点击弹窗中的确定,会刷新页面
1
2
3
4
5
6
7
8
9
10
11
12//该功能实现可以使用js语法
success:function(res){
if(res.status){
// alert弹窗
alert("添加成功!");
// 使用js实现页面刷新
location.reload();
}else{
$.each(res.error, function (name,data){
{#console.log(name,data)#}
$("#id_" + name).next().text(data[0]);
})
1、订单管理
1.1 表结构
表结构设计
1
2
3
4
5
6
7
8
9
10
11class Order(models.Model):
"""工单表"""
oid = models.CharField(verbose_name="订单号", max_length=64)
title = models.CharField(verbose_name="名称", max_length=32)
price = models.DecimalField(verbose_name='价格', max_digits=10, decimal_places=2, default=0)
status_choices = (
(1,"待支付"),
(2,"已支付"),
)
status = models.SmallIntegerField(verbose_name="状态", choices=status_choices, default=1)
user_admin = models.ForeignKey(verbose_name="负责人", to="Admin", on_delete=models.CASCADE)
1.2 Ajax显示对话框
从Bootstrap手册中导入
弹出模态框
的模板可以使用Ajax激活,当点击新建按钮时,弹出对话框
1
2
3
4
5
6
7
8
9
10
11
12
13
14{% block js %}
<script type="text/javascript">
$(function () {
bindBtnAddEvent();
})
function bindBtnAddEvent() {
$("#btnAdd").click(function () {
// 点击新建按钮,显示对话框,myModal是对话框id
$('#myModal').modal('show')
});
}
</script>
{% endblock %}
1.3 新建订单
1 |
|
HTML部分的关于弹出框的一些设置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17success:function(res){
if(res.status){
// alert弹窗
alert("添加成功!");
// 使用js实现页面刷新
//location.reload();
// 如果保持弹出输入框不关闭,且清空输入框内容
{#$("#addForm")[0].reset();#}
// 关闭弹出框
$('#myModal').modal('hide')
}else{
$.each(res.error, function (name,data){
{#console.log(name,data)#}
$("#id_" + name).next().text(data[0]);
})
}
}
1.4 删除订单
- 点击删除,弹出警告框,确认是否删除
点击确定,可以删除对应的订单号
实现方式:在js中添加全局变量,并且在删除按钮上添加uid变量,这样点击不同订单的删除,就可以获取对应的id值
1
<input uid="{{ obj.id }}" type="button" class="btn btn-danger btn-sm btn-delete" value="删除">
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24function bindBtnConfirmDeleteEvent() {
$("#btnConfirmDelete").click(function () {
console.log("点击了")
//点击确认删除按钮,将全局变量中设置的那个要删除ID发送到后台
$.ajax({
url:"/order/delete/",
type:"GET",
data: {
uid:DELETE_ID,
},
success: function (res){
if(res.status){
// alert弹窗
alert("删除成功!");
// 使用js实现页面刷新
location.reload();
}else{
//删除失败
alert(res.error)
}
}
})
});
}获取id后,在数据库中找到对应的数据并删除
1
2
3
4
5
6
7
8
9def order_delete(request):
"""删除订单"""
uid = request.GET.get('uid')
print(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})
1.5 编辑订单
1 | # row_dict返回的是字典,因为在filter后面加上values是返回字典类型 |
根据id获取订单详情
1
2
3
4
5
6
7
8def order_detail(request):
"""根据id获取订单详细"""
uid = request.GET.get('uid')
# row_dict返回的是字典
row_dict = models.Order.objects.filter(id=uid).values("title", "price", "status").first()
if not row_dict:
return JsonResponse({"status": False, "error": "数据不存在"})
return JsonResponse({"status": True, "data": row_dict})
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Summer 自习室!