from PDAPI import * import TempLateAPI.GERP.API.FormAPI.FormData as FormData __metadata__ = { "route": "{DEFAULT_ROUTE}//", "methods": ["DELETE"], "blueprint": "GERP", "permission": 3.0, "attributes": [], "limit": "1 per second" } def HandleRequest(_CleanedData): Table = FormData.GetTable(_CleanedData["params"]["TableName"]) if not Table: return {"code": 1, "msg": "找不到表格"}, 404 ctx = FormData.PM._build_context(Table, _CleanedData["params"]["TableName"], _CleanedData) if not FormData.PM.check_permission("delete", ctx): return {"code": 403, "msg": "无删除权限"}, 403 skip, custom_result = FormData.PM.run_before_delete(ctx) if skip: return custom_result extension = FormData.get_table_extension(_CleanedData["params"]["TableName"]) if extension and hasattr(extension, "delete"): extension_result = extension.delete(Table, _CleanedData) if extension_result: return extension_result if Table.IsCompositeKey: pk_filter = [] for pk in Table.PrimaryKeys: pk_val = _CleanedData["params"].get(pk) or _CleanedData["form"].get(pk) if not pk_val: return {"code": 1, "msg": f"缺少参数: {pk}"}, 400 pk_filter.append( getattr(Table.Model, pk) == Table.KeyToUUIDConversion(pk, pk_val, bytes) ) Model = Table.Model.query.filter(*pk_filter).first() else: _id = _CleanedData["params"]["id"] Model = Table.Model.query.filter( getattr(Table.Model, Table.PrimaryKey) == Table.KeyToUUIDConversion(Table.PrimaryKey, _id, bytes) ).first() if not Model: return {"code": 1, "msg": "找不到模型"}, 404 try: db.session.delete(Model) db.session.commit() result = {"code": 0, "msg": "删除成功"}, 200 except: result = {"code": 1, "msg": "SQL 提交失败"}, 500 modified_result, skip_response = FormData.PM.run_after_delete(ctx, result) if skip_response: return modified_result return result