django for 循环 影响速度
在数据库中查询了 数据数据量不是很大 一共6条信息
判断这六条信息中 taxClassificationCode 自动是否是 None
如果 没有 none
把这些数据存入数据库中
经过测试 循环位置影响速度 处理六条信息 就用了4秒
寻优化方式
###查询数据库中的数据
data_mx = models.Ssflbm.objects.filter(userID=row_object["userID"], tradeNo=i).values("definedData","tradeNo",'goodsName','taxClassificationCode','specificationModel','meteringUnit','quantity','includeTaxFlag','unitPrice','invoiceAmount','taxRateValue','discountAmount','userID','zeroTaxFlag','preferentialPolicyFlag','vatSpecialManage','droucode')
print(data_mx)
###循环判断数据是否是空
for i in data_mx:
if i['taxClassificationCode'] == None:
return JsonResponse({"code": 1,
'msg': f"税收分类编码或税率不存在点击查看并维护! 单据编号:{i['tradeNo']} 商品编号:{i['droucode']}"})
#### 拼接字典
for i in data_mx:
data_lisit_mx = {
"definedData": i['definedData'],
"tradeNo": i["tradeNo"],
"goodsName": i["goodsName"],
"taxClassificationCode": i['taxClassificationCode'],
"specificationModel": i["specificationModel"],
"meteringUnit": i["meteringUnit"],
"quantity": i["quantity"],
"includeTaxFlag": '1',
"unitPrice": i["unitPrice"],
"invoiceAmount": i["invoiceAmount"],
"taxRateValue": i['taxRateValue'],
"discountAmount": i["discountAmount"],
"userID": i["userID"],
'zeroTaxFlag': i["zeroTaxFlag"],
'preferentialPolicyFlag': i["preferentialPolicyFlag"],
'vatSpecialManage':i["vatSpecialManage"]
}
##开始保存保存明细
form = T_data_list_mx_js(data=data_lisit_mx)
if form.is_valid(): # 如果信息没有问题准备插入
form.save()
else:
print(form.errors)
return JsonResponse({"code": 1,'msg': f"数据错误"})