Django学习第六天
启动项目命令
python manage.py runserver
取消模态框功能
js实现列表数据删除
第二种实现思路
使用jquery修改模态框标题
编辑页面拿到数据库数据显示默认数据功能实现
想要去数据库中获取数据时:对象/字典
三种不同的数据类型
使用Ajax传入数据实现表单编辑,删除,修改功能
order1.py
import json
import random
from django.shortcuts import render
from django.http import JsonResponse, HttpResponse
from app01 import models
from app01.utils.bootstrap import BootStrapModelForm
from django.views.decorators.csrf import csrf_exempt
from datetime import datetime
from app01.utils.pagination import Pagination
class OrderModelForm(BootStrapModelForm):
class Meta:
model = models.Order
# field = "__all__"
# fields = [""]
exclude = ["oid", "admin"]
def order_list(request):
queryset = models.Order.objects.all().order_by('-id')
page_object = Pagination(request, queryset)
form = OrderModelForm()
context = {
'form': form,
'queryset': page_object.page_queryset,
'page_string': page_object.html()
}
return render(request, 'order_list.html', context)
@csrf_exempt
def order_add(request):
""" 新建订单 (Ajax请求)"""
form = OrderModelForm(data=request.POST)
if form.is_valid():
# 额外增加一些不是用户输入的值(自己计算值)
form.instance.oid = datetime.now().strftime("%Y%m%d%H%M%S") + str(random.randint(1000, 9999))
# 固定设置管理员ID
# form.instance.admin = 当前登录系统管理员的ID
# keys = list(request.session.keys())
# print(keys)
form.instance.admin_id = request.session["info"]["id"]
# 保存到数据库中
form.save()
return JsonResponse({"status": True})
# return HttpResponse(json.dumps({"status": True}))
return JsonResponse({"status": False, 'error': form.errors})
def order_delete(request):
""" 删除订单 """
uid = request.GET.get("uid")
exists = models.Order.objects.filter(id=uid).exists()
if not exists:
return JsonResponse({"status": True, 'error': "删除失败,数据不存在"})
models.Order.objects.filter(id=uid).delete()
return JsonResponse({"status": True})
def order_detail(request):
""" 根据ID获取订单明细 """
# 方式1
# uid = request.GET.get("uid")
# row_object = models.Order.objects.filter(id=uid).first()
# if not row_object:
# return JsonResponse({"status": False, 'error': "数据不存在,"})
#
# # 从数据库中获取到一个对象 row_object
# result = {
# "status": True,
# "data": {
# "title": row_object.title,
# "price": row_object.price,
# "status": row_object.status,
# }
# }
# return JsonResponse({"status": True, "data": result})
# 方式2
uid = request.GET.get("uid")
row_dict = models.Order.objects.filter(id=uid).values("title", "price", "status").first()
if not row_dict:
return JsonResponse({"status": False, "error": "数据不存在。"})
# 从数据库中获取到一个对象 row_object
result = {
"status": True,
"data": row_dict
}
return JsonResponse(result)
@csrf_exempt
def order_edit(request):
""" 编辑订单 """
uid = request.GET.get("uid")
row_object = models.Order.objects.filter(id=uid).first()
if not row_object:
return JsonResponse({"status": False, "tips": "数据不存在。"})
form = OrderModelForm(data=request.POST, instance=row_object)
if form.is_valid():
form.save()
return JsonResponse({"status": True})
return JsonResponse({"status": False, "error": form.errors})
order_list.html
{% extends 'layout.html' %}
{% block content %}
订单列表
| ID | 订单号 | 名称 | 价格 | 状态 | 管理员 | 操作 |
|---|
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!








