import json import random from datetime import datetime from django.shortcuts import render, HttpResponse from django.http import JsonResponse from django.views.decorators.csrf import csrf_exempt from app01 import models from app01.utils.bootstrap import BootStrapModelForm from app01.utils.pagination import Pagination class OrderModelForm(BootStrapModelForm): class Meta: model = models.Order # fields = "__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 = request.session["info"]["id"] # 保存到数据库中 form.save() return JsonResponse({"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": False, '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(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})