类ACTIVE_FILE_PROTECT_RULE_VIEW(APIView):renderer_classes=(JSONRenderer,BrowsableAPIRenderer)parser_classes=(JSONParser,)defpost(self,request):fromdatetimeimportdatetimefromdjango.utilsimporttimezonefromdjango.utils.timezoneimportutcimporttimeimportxml.etree.ElementTree作为ETfromxml.etree.ElementTreeimportElementTree,Elementroot=ET.fromstring(RULE_XML_TPL)fileprotect=root.find('fileprotect')#printfileprotect.tag,fileprotect.attribuser_info=request.session.get('user_info')customer_id=user_info.get('customer_id')body_data=request.bodyrequest_data=json.loads(body_data)device_hash=request_data['device_hash']withtransaction.atomic():device=models.FILE_PROTECT_INSTANCE.objects。得到(device_hash=device_hash)断言(device.customer_id==customer_id)rule_list=models.FILE_PROTECT_RULE_UPDATE.objects.filter(device_hash=device_hash)forruleinrule_list:tmp_rule=Element('rule',{'id':str(rule.id),'enabled':'true'ifrule.enableelse'false','status':'true'ifrule.apply_statuselse'false','log':rule.log,'option':','.join(json.loads(rule.operation)),'recover':'true'ifrule.recoverelse'false','protectdir':rule.protectdir,'action':'allow'ifrule.actionelse'deny','protectfiletype':','.join(json.loads(rule.file_type_list)),'comment':rule.commont})rule.apply_status=1rule.save()fileprotect.append(tmp_rule)#ET.dump(root)tmp_xml=ET.tostring(root,encoding="utf-8",method="xml")rule_xml='\n'+tmp_xmltmp_commit_rule_list=models.FILE_PROTECT_RULE_COMMIT.objects.filter(device_hash=device_hash).filter(customer_id=customer_id)#首次入库if(len(tmp_commit_rule_list)==0):tmp_commit_rule=models.FILE_PROTECT_RULE_COMMIT(customer_id,customer_sh=device_hash,rule_xml_text=rule_xml)tmp_commit_rule.save()#继续修改xml内容和版本号(时间)else:tmp_commit_rule=models.FILE_PROTECT_RULE_COMMIT.objects.get(device_hash=device_hash)if(tmp_commit_rule_xmlrule.通过其他:tmp_commit_rule.rule_xml_text=rule_xmltmp_commit_rule.version=timezone.now()tmp_commit_rule.save()fromdjango.forms.modelsimportmodel_to_dictversion=tmp_commit_rule.versiontmp_commit_rule=model_to_dict(tmp_commit_rule)'''fromdatetimeimportdatetimefromdjango.utilsimporttimezonefromdjango.utils.timezoneimportutc导入时间'''#time.mktime(timezone.now().timetuple())version=time.mktime(version.timetuple())tmp_commit_rule['version']=版本返回APIResponse(status=status_code.success,data=tmp_commit_rule)
