【发布时间】:2020-04-09 16:56:14
【问题描述】:
有两个功能:一个下载excel文件(ExcelFileUploadView(APIView)),另一个处理下载的文件(def parse_excel_rfi_sheet)。
函数parse_excel_rfi_sheet在ExcelFileUploadView(APIView)内部被调用
class ExcelFileUploadView(APIView):
parser_classes = (MultiPartParser, FormParser)
permission_classes = (permissions.AllowAny,)
def put(self, request, format=None):
if 'file' not in request.data:
raise ParseError("Empty content")
f = request.data['file']
filename = f.name
if filename.endswith('.xlsx'):
try:
file = default_storage.save(filename, f)
r = parse_excel_rfi_sheet(file)
status = 200
except:
raise Exception({"general_errors": ["Error during file upload"]})
finally:
default_storage.delete(file)
else:
status = 406
r = {"general_errors": ["Please upload only xlsx files"]}
return Response(r, status=status)
def parse_excel_rfi_sheet(file):
workbook = load_workbook(filename=file)
sheet = workbook["RFI"]
curent_module_coordinate = []
try:
....
curent_module_coordinate.append(sheet['E688'].value)
curent_module_coordinate.append(sheet['E950'].value)
if check_exel_rfi_template_structure(structure=curent_module_coordinate):
file_status = True
else:
file_status = False
except:
raise Exception({"general_errors": ["Error during excel file parsing. Unknown module cell"]})
问题是当parse_excel_rfi_sheet内部发生错误时,我看不到{"general_errors": ["Error during excel file parsing. Unknown module cell"]}的调用
相反,我总是看到电话
{"general_errors": ["Error during file upload"]}
这就是为什么我无法理解错误发生在哪个阶段:在下载文件的那一刻或在处理的那一刻。 怎么改?
【问题讨论】:
标签: python django-rest-framework