def post(self, request): """ 修改项目 :param request: :return: """ data = JSONParser().parse(request) result = self.parameter_check(data) if result: return result # 查找项目是否存在 try: obj = Project.objects.get(id=data["project_id"]) except ObjectDoesNotExist: return JsonResponse(code_msg=GlobalStatusCode.project_not_exist()) # 查找是否相同名称的项目 obi = Project.objects.filter(name=data["name"]).exclude( id=data["project_id"]) if len(obi) == 0: serializer = ProjectDeserializer(data=data) with transaction.atomic(): if serializer.is_valid(): # 修改项目 serializer.update(instance=obj, validated_data=data) # 记录动态 record_dynamic(project=data["project_id"], _type="修改", operationObject="项目", user=request.user.pk, data=data["name"]) return JsonResponse(code_msg=GlobalStatusCode.success()) else: return JsonResponse(code_msg=GlobalStatusCode.fail()) else: return JsonResponse(code_msg=GlobalStatusCode.name_repetition())
def post(self,request): """ 更新用例的分组 :param request: :return: """ data=JSONParser().parse(request) project=get_availability_project(data,request.user) result=parameter_ids_check(data) if isinstance(project,Project) else project if result: return result try: group=TestCaseGroup.objects.get(id=data['test_case_group_id'],project=project.id) except ObjectDoesNotExist: return JsonResponse(code=code.CODE_OBJECT_NOT_EXIST,msg='测试用例分组不存在') id_list=Q() for i in data['ids']: id_list=id_list|Q(id=i) case_list=AutomationTestCase.objects.filter(id_list,project=project.id) case_name=[] for j in case_list: case_name.append(j.case_name) with transaction.atomic(): case_list.update(test_case_group=group) record_dynamic(project=project, _type='修改', operation_object='测试用例', user=request.user.pk, data='修改测试用例分组 %s' % case_name) return JsonResponse(code=code.CODE_SUCCESS)
def post(self, request): """ 删除接口 :param request: :return: """ data = JSONParser().parse(request) project = get_availability_project(data, request.user) result = parameter_ids_check(data) if isinstance(project, Project) else project if result: return result id_list = Q() for i in data['ids']: id_list = id_list | Q(id=i) api_list = APIInfo.objects.filter(id_list, project=data['project_id']) name_list = [] for j in api_list: name_list.append(str(j.name)) with transaction.atomic(): api_list.delete() record_dynamic(project=project.id, _type='删除', operation_object='接口', user=request.user.pk, data="删除接口分组,列表“%s”" % name_list) return JsonResponse(code=code.CODE_SUCCESS)
def post(self, request): """ 修改接口分组名称 :param request: :return: """ data = JSONParser().parse(request) result = self.parameter_check(data) if result: return result try: pro_data = Project.objects.get(id=data["project_id"]) except ObjectDoesNotExist: return JsonResponse(code="999995", msg="项目不存在!") pro_data = ProjectSerializer(pro_data) if not pro_data.data["status"]: return JsonResponse(code="999985", msg="该项目已禁用") obi = ApiGroupLevelFirst.objects.filter(id=data["id"], project=data["project_id"]) if obi: name = obi[0].name obi.delete() else: return JsonResponse(code="999991", msg="分组不存在!") record_dynamic(project=data["project_id"], _type="删除", operationObject="接口分组", user=request.user.pk, data="删除接口分组“%s”" % name) return JsonResponse(code="999999", msg="成功!")
def post(self, request): """ 新增接口分组 :param request: :return: """ data = JSONParser().parse(request) result = self.parameter_check(data) if result: return result try: obj = Project.objects.get(id=data["project_id"]) except ObjectDoesNotExist: return JsonResponse(code="999995", msg="项目不存在!") pro_data = ProjectSerializer(obj) if not pro_data.data["status"]: return JsonResponse(code="999985", msg="该项目已禁用") serializer = ApiGroupLevelFirstDeserializer(data=data) if serializer.is_valid(): serializer.save(project=obj) else: return JsonResponse(code="999998", msg="失败!") record_dynamic(project=serializer.data.get("id"), _type="添加", operationObject="接口分组", user=request.user.pk, data="新增接口分组“%s”" % data["name"]) return JsonResponse(data={ "group_id": serializer.data.get("id") }, code="999999", msg="成功!")
def post(self, request): """ 添加Host :param request: :return: """ data = JSONParser().parse(request) result = self.parameter_check(data) if result: return result try: obj = Project.objects.get(id=data["project_id"]) except ObjectDoesNotExist: return JsonResponse(code_msg=GlobalStatusCode.project_not_exist()) obi = GlobalHost.objects.filter(name=data["name"], project=data["project_id"]) if obi: return JsonResponse(code_msg=GlobalStatusCode.name_repetition()) else: serializer = GlobalHostSerializer(data=data) with transaction.atomic(): if serializer.is_valid(): # 外键project_id serializer.save(project=obj) # 记录动态 record_dynamic(project=data["project_id"], _type="添加", operationObject="域名", user=request.user.pk, data=data["name"]) return JsonResponse( data={"host_id": serializer.data.get("id")}, code_msg=GlobalStatusCode.success()) return JsonResponse(code_msg=GlobalStatusCode.fail())
def post(self, request): """ 修改接口 :param request: :return: """ data=request.data result = self.parameter_check(data) if result: return result data["userUpdate"] = request.user.pk data["params"]="{}" if not "params" in data or not data["params"] else data["params"] try: pro_data = Project.objects.get(id=data["project_id"]) except ObjectDoesNotExist: return JsonResponse(code="999995", msg="项目不存在!") pro_data = ProjectSerializer(pro_data) if not pro_data.data["status"]: return JsonResponse(code="999985", msg="该项目已禁用") api_name = ApiInfo.objects.filter(name=data["name"], project=data["project_id"]).exclude(id=data["id"]) if len(api_name): return JsonResponse(code="999997", msg="存在相同名称!") # data["userUpdate"] = request.user result=ApiService.updateApi(data) if result: record_dynamic(project=data["project_id"], _type="修改", operationObject="接口", user=request.user.pk, data="修改接口“%s”" % data["name"]) api_record = ApiOperationHistory(api=ApiInfo.objects.get(id=data['id']), user=User.objects.get(id=request.user.pk), description="修改接口\"%s\"" % data["name"]) api_record.save() return JsonResponse(code="999999", msg="执行成功!") return JsonResponse(code="999996", msg="执行失败!")
def post(self, request): """ 添加或修改邮件发送配置 :param request: :return: """ data = JSONParser().parse(request) result = self.parameter_check(data) if result: return result try: obi = Project.objects.get(id=data["project_id"]) except ObjectDoesNotExist: return JsonResponse(code="999995", msg="项目不存在!") pro_data = ProjectSerializer(obi) if not pro_data.data["status"]: return JsonResponse(code="999985", msg="该项目已禁用") serialize = AutomationReportSendConfigDeserializer(data=data) if serialize.is_valid(): try: obj = AutomationReportSendConfig.objects.get(project=data["project_id"]) serialize.update(instance=obj, validated_data=data) except ObjectDoesNotExist: serialize.save(project=obi) # 记录动态 record_dynamic(project=data["project_id"], _type="添加", operationObject="邮箱", user=request.user.pk, data="添加邮箱配置") return JsonResponse(code="999999", msg="成功!") return JsonResponse(code="999996", msg="参数有误!")
def post(self, request): """ 删除域名 :param request: :return: """ data = JSONParser().parse(request) result = self.parameter_check(data) if result: return result try: pro_data = Project.objects.get(id=data["project_id"]) except ObjectDoesNotExist: return JsonResponse(code="999995", msg="项目不存在!") pro_data = ProjectSerializer(pro_data) if not pro_data.data["status"]: return JsonResponse(code="999985", msg="该项目已禁用") try: for j in data["ids"]: obj = GlobalHost.objects.filter(id=j) if obj: name = obj[0].name obj.delete() record_dynamic(project=data["project_id"], _type="删除", operationObject="域名", user=request.user.pk, data=name) return JsonResponse(code="999999", msg="成功!") except ObjectDoesNotExist: return JsonResponse(code="999995", msg="项目不存在!")
def del_api(request): """ 删除接口 project_id 项目ID api_ids 接口ID列表 :return: """ project_id = request.POST.get("project_id") if not project_id.isdecimal(): return JsonResponse(code_msg=GlobalStatusCode.parameter_wrong()) ids = request.POST.get("api_ids") id_list = ids.split(",") for i in id_list: if not i.isdecimal(): return JsonResponse(code_msg=GlobalStatusCode.parameter_wrong()) obj = Project.objects.filter(id=project_id) if obj: for j in id_list: obi = ApiInfo.objects.filter(id=j, project=project_id) if len(obi) != 0: name = obi[0].name obi.delete() record_dynamic(project_id, "删除", "接口", "删除接口“%s”" % name) return JsonResponse(code_msg=GlobalStatusCode.success()) else: return JsonResponse(code_msg=GlobalStatusCode.project_not_exist())
def post(self, request): """ 添加Host :param request: :return: """ data = JSONParser().parse(request) result = self.parameter_check(data) if result: return result try: obj = Project.objects.get(id=data["project_id"]) if not request.user.is_superuser and obj.user.is_superuser: return JsonResponse(code="999983", msg="无操作权限!") except ObjectDoesNotExist: return JsonResponse(code="999995", msg="项目不存在!") pro_data = ProjectSerializer(obj) if not pro_data.data["status"]: return JsonResponse(code="999985", msg="该项目已禁用") obi = GlobalHost.objects.filter(name=data["name"], project=data["project_id"]) if obi: return JsonResponse(code="999997", msg="存在相同名称!") else: serializer = GlobalHostSerializer(data=data) with transaction.atomic(): if serializer.is_valid(): # 外键project_id serializer.save(project=obj) # 记录动态 record_dynamic(project=data["project_id"], _type="添加", operationObject="域名", user=request.user.pk, data=data["name"]) return JsonResponse(data={ "host_id": serializer.data.get("id") }, code="999999", msg="成功!") return JsonResponse(code="999998", msg="失败!")
def post(self, request): """ 启用项目 :param request: :return: """ data = JSONParser().parse(request) result = self.parameter_check(data) if result: return result # 查找项目是否存在 try: obj = Project.objects.get(id=data["project_id"]) if not request.user.is_superuser and obj.user.is_superuser: return JsonResponse(code="999983", msg=str(obj) + "无操作权限!") obj.status = True obj.save() record_dynamic(project=data["project_id"], _type="禁用", operationObject="项目", user=request.user.pk, data=obj.name) return JsonResponse(code="999999", msg="成功") except ObjectDoesNotExist: return JsonResponse(code="999995", msg="项目不存在!")
def post(self, request): """ 删除邮箱配置 :param request: :return: """ data = JSONParser().parse(request) result = self.parameter_check(data) if result: return result try: pro_data = Project.objects.get(id=data["project_id"]) if not request.user.is_superuser and pro_data.user.is_superuser: return JsonResponse(code="999983", msg="无操作权限!") except ObjectDoesNotExist: return JsonResponse(code="999995", msg="项目不存在!") pro_data = ProjectSerializer(pro_data) if not pro_data.data["status"]: return JsonResponse(code="999985", msg="该项目已禁用") AutomationReportSendConfig.objects.filter( project=data["project_id"]).delete() # 记录动态 record_dynamic(project=data["project_id"], _type="删除", operationObject="邮箱", user=request.user.pk, data="删除邮箱配置") return JsonResponse(code="999999", msg="成功!")
def post(self, request): """ 新增项目 :param request: :return: """ data = JSONParser().parse(request) result = self.parameter_check(data) if result: return result data["user"] = request.user.pk project_serializer = ProjectDeserializer(data=data) with transaction.atomic(): if project_serializer.is_valid(): # 保持新项目 project_serializer.save() # 记录动态 record_dynamic(project=project_serializer.data.get("id"), _type="添加", operationObject="项目", user=request.user.pk, data=data["name"]) # 创建项目的用户添加为该项目的成员 self.add_project_member(project_serializer.data.get("id"), request.user.pk) return JsonResponse( data={"project_id": project_serializer.data.get("id")}, code_msg=GlobalStatusCode.success()) else: return JsonResponse(code_msg=GlobalStatusCode.fail())
def post(self, request): data = JSONParser().parse(request) user = request.user project = get_availability_project(data, request.user) result = parameter_id_check(data) or check_name_parameter( data) if isinstance(project, Project) else project if result: return result try: group = APIGroup.objects.get(id=data['id'], project=data['project_id']) except ObjectDoesNotExist: return JsonResponse(code=code.CODE_OBJECT_NOT_EXIST, msg='分组不存在') serializer = APIGroupSerializer(data=data) if serializer.is_valid(): serializer.update(instance=group, validated_data=serializer.data) record_dynamic(project=project, _type='修改', operation_object='接口分组', user=request.user.pk, data='修改接口分组"%s"' % group.name) return JsonResponse(code=code.CODE_SUCCESS) else: return JsonResponse(code=code.CODE_Failed)
def post(self, request): """ 启用项目 :param request: :return: """ data = JSONParser().parse(request) result = self.parameter_check(data) if result: return result # 查找项目是否存在 try: pro_data = Project.objects.get(id=data["project_id"]) except ObjectDoesNotExist: return JsonResponse(code="999995", msg="项目不存在!") pro_data = ProjectSerializer(pro_data) if not pro_data.data["status"]: return JsonResponse(code="999985", msg="该项目已禁用") try: obj = GlobalHost.objects.get(id=data["host_id"], project=data["project_id"]) except ObjectDoesNotExist: return JsonResponse(code="999992", msg="host不存在") obj.status = True record_dynamic(project=data["project_id"], _type="禁用", operationObject="域名", user=request.user.pk, data=obj.name) return JsonResponse(code="999999", msg="成功!")
def post(self, request): """ 删除域名 :param request: :return: """ data = JSONParser().parse(request) result = self.parameter_check(data) if result: return result try: Project.objects.get(id=data["project_id"]) except ObjectDoesNotExist: return JsonResponse(code_msg=GlobalStatusCode.project_not_exist()) try: for j in data["ids"]: obj = GlobalHost.objects.filter(id=j) if obj: obj.delete() name = obj[0].name record_dynamic(project=data["project_id"], _type="删除", operationObject="域名", user=request.user.pk, data=name) return JsonResponse(code_msg=GlobalStatusCode.success()) except ObjectDoesNotExist: return JsonResponse(code_msg=GlobalStatusCode.project_not_exist())
def updatePublishResult(publish, id, result, trace, project_id, user_id): report_url = settings.REPORT_URL publish_test_url = settings.PUBLISH_TEST_URL statusMap = {"PASS": "******", "FAIL": "测试失败"} autotest_report = "%s/project=%s/trace=%s" % (report_url, project_id, trace) params = { "id": id, "autotest_status": statusMap[result], "autotest_report": autotest_report } code, response_data, header_data = run_http( request_type="PUT", header={ "Content-Type": "application/json; charset=UTF-8", 'Connection': 'close' }, url=publish_test_url, request_parameter_type="application/json", parameter=json.dumps(params).encode('utf-8')) record_dynamic(project=project_id, _type="测试", operationObject="发布项目", user=user_id, data="发布项目%s上线单%s%s,更新测试结果%s,测试报告链接:\n%s" % (publish, id, statusMap[result], response_data["msg"] if "msg" in response_data else "未知", autotest_report))
def post(self, request): """ 新增接口 :param request: :return: """ data=request.data result = self.parameter_check(data) if result: return result data["userUpdate"] = request.user.pk data["params"]="{}" if not "params" in data or not data["params"] else data["params"] api_name = ApiInfo.objects.filter(name=data["name"], project=data["project_id"]) if len(api_name): return JsonResponse(code="999997", msg="存在相同名称!") else: result=ApiService.addApi(data) if result: record_dynamic(project=data["project_id"], _type="新增", operationObject="接口", user=request.user.pk, data="新增接口“%s”" % data["name"]) api_record = ApiOperationHistory(api=ApiInfo.objects.get(id=result["id"]), user=User.objects.get(id=request.user.pk), description="新增接口“%s”" % data["name"]) api_record.save() return JsonResponse(code="999999", msg="执行成功!", data={"api_id": result["id"]}) else: return JsonResponse(code="999996", msg="执行失败!")
def post(self, request): """ 删除域名 :param request: :return: """ data = JSONParser().parse(request) project = get_availability_project(data, request.user) result = parameter_ids_check(data) if isinstance(project, Project) else project if result: return result try: for i in data['ids']: host = GlobalHost.objects.get(id=i) if host: name = host.name host.delete() record_dynamic(project=data['project_id'], _type='删除', operation_object='域名', user=request.user.pk, data=host.name) return JsonResponse(code=code.CODE_SUCCESS) except ObjectDoesNotExist: return JsonResponse(code=code.CODE_OBJECT_NOT_EXIST, msg='项目不存在!')
def post(self, request): """ 修改接口分组名称 :param request: :return: """ data = JSONParser().parse(request) result = self.parameter_check(data) if result: return result try: pro_data = Project.objects.get(id=data["project_id"]) if not request.user.is_superuser and pro_data.user.is_superuser: return JsonResponse(code="999983", msg="无操作权限!") except ObjectDoesNotExist: return JsonResponse(code="999995", msg="项目不存在!") pro_data = ProjectSerializer(pro_data) if not pro_data.data["status"]: return JsonResponse(code="999985", msg="该项目已禁用") try: obj = ApiGroupLevelFirst.objects.get(id=data["id"], project=data["project_id"]) except ObjectDoesNotExist: return JsonResponse(code="999991", msg="分组不存在!") serializer = ApiGroupLevelFirstDeserializer(data=data) if serializer.is_valid(): serializer.update(instance=obj, validated_data=data) else: return JsonResponse(code="999998", msg="失败!") record_dynamic(project=serializer.data.get("id"), _type="修改", operationObject="接口分组", user=request.user.pk, data="修改接口分组“%s”" % data["name"]) return JsonResponse(code="999999", msg="成功!")
def post(self, request): """ 更新项目host :param request: :return: """ data = JSONParser().parse(request) project = get_availability_project(data, request.user) result = parameter_id_check(data) or all_parameter_check( data) if isinstance(project, Project) else project if result: return result try: host = GlobalHost.objects.get(id=data['host_id']) except ObjectDoesNotExist: return JsonResponse(code=code.CODE_OBJECT_NOT_EXIST, msg='未找到指定host') same_name_hosts = GlobalHost.objects.filter(name=data['name'], project=data['project_id']) if len(same_name_hosts): return JsonResponse(code=code.CODE_EXIST_SAME_NAME, msg='host名称已占用') serialzier = HostSerializer(data=data) with transaction.atomic(): if serialzier.is_valid(): serialzier.update(instance=host, validated_data=data) record_dynamic(project=data['project_id'], _type='修改', operation_object='域名', user=request.user.pk, data=host.name) return JsonResponse(code=code.CODE_SUCCESS) return JsonResponse(code=code.CODE_Failed)
def post(self, request): """ 新增接口 :param request: :return: """ data = JSONParser().parse(request) result = self.parameter_check(data) if result: return result try: pro_data = Project.objects.get(id=data["project_id"]) except ObjectDoesNotExist: return JsonResponse(code="999995", msg="项目不存在!") pro_data = ProjectSerializer(pro_data) if not pro_data.data["status"]: return JsonResponse(code="999985", msg="该项目已禁用") try: obi = ApiInfo.objects.get(id=data["id"]) except ObjectDoesNotExist: return JsonResponse(code="999990", msg="接口不存在!") obi.mockStatus = not obi.mockStatus obi.save() try: if obi.mockStatus: record_dynamic(project=data["project_id"], _type="mock", operationObject="接口", user=request.user.pk, data="关闭“%s”Mock" % obi.name) else: record_dynamic(project=data["project_id"], _type="mock", operationObject="接口", user=request.user.pk, data="启动“%s”Mock" % obi.name) return JsonResponse(code="999999", msg="成功!") except: return JsonResponse(code="999998", msg="失败!")
def post(self, request): """ 启用host :param request: :return: """ data = JSONParser().parse(request) project = get_availability_project(data, request.user) result = parameter_id_check(data) if isinstance(project, Project) else project if result: return result try: host = GlobalHost.objects.get(id=data['host_id'], project=data['project_id']) except ObjectDoesNotExist: return JsonResponse(code=code.CODE_OBJECT_NOT_EXIST, msg='未找到指定host') host.status = not host.status host.save() _type = '启用' if host.status else '禁用' record_dynamic(project=data['project_id'], _type=_type, operation_object='域名', user=request.user.pk, data=host.name) return JsonResponse(code=code.CODE_SUCCESS)
def post(self, request): """ 修改接口所属分组 :param request: :return: """ data = JSONParser().parse(request) result = self.parameter_check(data) if result: return result try: pro_data = Project.objects.get(id=data["project_id"]) except ObjectDoesNotExist: return JsonResponse(code="999995", msg="项目不存在!") pro_data = ProjectSerializer(pro_data) if not pro_data.data["status"]: return JsonResponse(code="999985", msg="该项目已禁用") id_list = Q() for i in data["ids"]: id_list = id_list | Q(id=i) api_list = ApiInfo.objects.filter(id_list, project=data["project_id"]) with transaction.atomic(): api_list.update(apiGroupLevelFirst=ApiGroupLevelFirst.objects.get(id=data["apiGroupLevelFirst_id"])) name_list = [] for j in api_list: name_list.append(str(j.name)) record_dynamic(project=data["project_id"], _type="修改", operationObject="接口", user=request.user.pk, data="修改接口分组,列表“%s”" % name_list) return JsonResponse(code="999999", msg="成功!")
def post(self, request): """ 添加host :param request: :return: """ data = JSONParser().parse(request) project = get_availability_project(data, request.user) result = all_parameter_check(data) if isinstance(project, Project) else project if result: return result host = GlobalHost.objects.filter(name=data['name'], project=data['project_id']) if host: return JsonResponse(code=code.CODE_EXIST_SAME_NAME, msg='存在同名host') serializer = HostSerializer(data=data) with transaction.atomic(): if serializer.is_valid(): serializer.save(project=project) record_dynamic(project=data['project_id'], _type='添加host', operation_object='域名', user=request.user.pk, data=data['name']) return JsonResponse( data={"host_id": serializer.data.get("id")}, code=code.CODE_SUCCESS) return JsonResponse(code=code.CODE_Failed)
def post(self,request): """ 添加测试用例 :param request: :return: """ data=JSONParser().parse(request) project=get_availability_project(data,request.user) result=all_parameter_check(data) if isinstance(project,Project) else project if result: return result with transaction.atomic(): try: serializer = TestCaseDeserializer(data=data) if serializer.is_valid(): try: group = TestCaseGroup.objects.get(id=data['test_case_group_id'], project=project.id) serializer.save(project=project, test_case_group=group, user=User.objects.get(id=request.user.pk)) except KeyError: serializer.save(project=project,user=User.objects.get(id=request.user.pk)) record_dynamic(project=project, _type='添加', operation_object='测试用例', user=request.user.pk, data='新增测试用例 %s' % data['case_name']) return JsonResponse(data={'case_id':serializer.data.get('id')},code=code.CODE_SUCCESS) return JsonResponse(code=code.CODE_Failed) except Exception: return JsonResponse(code=code.CODE_Failed)
def post(self, request): """ 删除用例的api接口 :param request: :return: """ data = JSONParser().parse(request) project = get_availability_project(data, request.user) test_case = get_test_case(data) if not isinstance(project, Project): return project if not isinstance(test_case, AutomationTestCase): return test_case for api_id in data['ids']: case_api = AutomationCaseApi.objects.filter( id=api_id, automation_test_case=test_case.id) if len(case_api) != 0: name = case_api[0].name case_api.delete() record_dynamic(project=project.id, _type="删除", operation_object="用例接口", user=request.user.pk, data="删除用例\"%s\"的接口\"%s\"" % (test_case.case_name, name)) return JsonResponse(code=code.CODE_SUCCESS)
def post(self, request): """ 修改项目 :param request: :return: """ data = JSONParser().parse(request) result = self.parameter_check(data) if result: return result # 查找项目是否存在 try: obj = Project.objects.get(id=data["project_id"]) except ObjectDoesNotExist: return JsonResponse(code="999995", msg="项目不存在!") # 查找是否相同名称的项目 pro_name = Project.objects.filter(name=data["name"]).exclude( id=data["project_id"]) if len(pro_name): return JsonResponse(code="999997", msg="存在相同名称") else: serializer = ProjectDeserializer(data=data) with transaction.atomic(): if serializer.is_valid(): # 修改项目 serializer.update(instance=obj, validated_data=data) # 记录动态 record_dynamic(project=data["project_id"], _type="修改", operationObject="项目", user=request.user.pk, data=data["name"]) return JsonResponse(code="999999", msg="成功") else: return JsonResponse(code="999998", msg="失败")
def post(self, request): """ 启用项目配置 :param request: :return: """ data = request.data # 查找项目是否存在 try: pro_data = Project.objects.get(id=data["project_id"]) except ObjectDoesNotExist: return JsonResponse(code="999995", msg="项目不存在!") pro_data = ProjectSerializer(pro_data) if not pro_data.data["status"]: return JsonResponse(code="999985", msg="该项目已禁用") try: obj = ProjectConfig.objects.get(id=data["config_id"], project=data["project_id"]) except ObjectDoesNotExist: return JsonResponse(code="999992", msg="配置不存在") obj.status = True obj.save() record_dynamic(project=data["project_id"], _type="启用", operationObject="配置", user=request.user.pk, data=obj.name) return JsonResponse(code="999999", msg="成功!")