def addorder(request): info = request.params['data'] # 从请求消息中 获取要添加订单信息 # 并且插入到数据库 # Django 实现数据库事务操作 with transaction.atomic(): new_order = Order.objects.create(name=info['name'], customer_id=info['customerid']) batch = [OrderMedicine(order_id=new_order.id, medicine_id=mid, amount=1) for mid in info['medicineids']] OrderMedicine.objects.bulk_create(batch) return JsonResponse({'ret': 0, 'id': new_order.id})
def add_order(request): # 提取新增的数据 data = request.params["data"] # 提取新增药品的列表 medicine_list = data["medicineids"] # 订单表增加 # 开启事务 with transaction.atomic(): # 订单表的新增 new_order = Order.objects.create(name=data["name"], customer_id=data["customerid"]) # 一个列表生成式,生成不同的《订单药品》的表 all = [OrderMedicine(order_id=new_order.id, medicine_id=medicine_id, amount=1) for medicine_id in medicine_list] # bulk_create可以批量新增数据 OrderMedicine.objects.bulk_create(all) return JsonResponse({"ret": 0, "id": new_order.id})
def addorder(request): print("下单############################################################") info = request.params['data'] name = info['name'] customer_id = info['customerid'] medicines = info['medicinelist'] with transaction.atomic(): neworder = Order.objects.create(name=name, custom_id=customer_id) bactch = list() for medicine in medicines: om = OrderMedicine(order_id=neworder.id, medicine_id=medicine['id'], amount=1) bactch.append(om) OrderMedicine.objects.bulk_create(bactch) return JsonResponse({'ret': 0, 'id': neworder.id, 'msg': '下单成功'})
def post(self,request): info = json.loads(request.body) data = info['data'] with transaction.atomic(): medicinelist = data['medicinelist'] new_order = Order.objects.create(name=data['name'], customer_id=data['customerid'], # 写入json格式的药品数据到 medicinelist 字段中 medicinelist=json.dumps(medicinelist,ensure_ascii=False),) batch = [OrderMedicine(order_id=new_order.id, medicine_id=medicine['id'], amount=medicine['amount']) for medicine in medicinelist] OrderMedicine.objects.bulk_create(batch) return JsonResponse({'ret': 0, 'id': new_order.id})
def addorder(request): info = request.params['data'] # 从请求消息中 获取要添加订单的信息 # 并且插入到数据库中 with transaction.atomic(): medicinelist = info['medicinelist'] print('medicinelist------->', medicinelist) new_order = Order.objects.create(name=info['name'], customer_id=info['customerid'], # 写入json格式的药品数据到medicinelist字段中 medicinelist=json.dumps(medicinelist, ensure_ascii=False)) batch = [OrderMedicine(medicine_id=medicine['id'], order_id=new_order.id, amount=medicine['amount']) for medicine in info['medicinelist']] OrderMedicine.objects.bulk_create(batch) return JsonResponse({'ret': 0, 'orderId': new_order.id})
def addorder(request): info = request.params['data'] # 从请求消息中 获取要添加订单的信息 # 并且插入到数据库中 #with transaction.atomic()这个就是事物操作 with transaction.atomic(): #把一批数据库放到一个事物中,发现任何一个数据失败,所有操作回滚 new_order = Order.objects.create(name=info['name'] , customer_id=info['customerid']) #一个订单多个药品,代表插入多少条记录 batch = [OrderMedicine(order_id=new_order.id,medicine_id=mid,amount=1) for mid in info['medicineids']] #sql语句,每次执行都是与数据库的交互 OrderMedicine.objects.bulk_create(batch) return JsonResponse({'ret': 0,'id':new_order.id})
def addorder(request): info = request.params['data'] with transaction.atomic(): medicinelist = info['medicinelist'] new_order = Order.objects.create( name=info['name'], customer_id=info['customerid'], # Write medicine data in json format to the medicinelist field medicinelist=json.dumps(medicinelist, ensure_ascii=False), ) batch = [ OrderMedicine(order_id=new_order.id, medicine_id=medicine['id'], amount=medicine['amount']) for medicine in medicinelist ] OrderMedicine.objects.bulk_create(batch) return JsonResponse({'ret': 0, 'id': new_order.id})