From b88928b3b2bbf93adb1714ad47691b846e6ea839 Mon Sep 17 00:00:00 2001 From: sichan Date: Tue, 18 Jun 2024 12:20:06 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9C=A8items=5Flist=E9=87=8C=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E4=BA=86able=5Flist=5Fcontent=20=E5=8F=AF=E7=94=A8?= =?UTF-8?q?=E4=BA=8E=E5=AD=90=E9=A1=B5=E9=9D=A2=E7=BB=A7=E6=89=BF=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- excel_parser/views.py | 14 +++++++++++++- templates/items_list.html | 3 +++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/excel_parser/views.py b/excel_parser/views.py index e738162..b9062db 100644 --- a/excel_parser/views.py +++ b/excel_parser/views.py @@ -148,28 +148,40 @@ def excel_preview(request): def common_save(request): + # 如果请求方法是POST if request.method == 'POST': try: + # 解析请求体中的JSON数据 body = json.loads(request.body) + # 获取data字段,如果没有则默认为None data = body.get('data', None) + # 获取session中的excel_valid_model字段,如果没有则默认为None model_name = request.session.get('excel_valid_model', None) + # 如果data或model_name为空,返回错误响应 if not data or not model_name: return JsonResponse({'status': 'error', 'message': '无效的数据或模型'}) + # 创建一个ExcelDataSaver对象,用于保存数据 data_saver = ExcelDataSaver(model_name, data) + # 如果数据保存成功 if data_saver.save_data(): - # 删除会话中的特定键 + # 删除会话中的columns、table_data和excel_valid_model字段 request.session.pop('columns', None) request.session.pop('table_data', None) request.session.pop('excel_valid_model', None) + # 获取成功保存后的重定向URL redirect_url = request.session.pop('excel_save_success_direct', None) + # 返回成功响应 return JsonResponse({'status': 'success', 'message': '数据已成功保存', 'redirect_url': redirect_url}) else: + # 返回错误响应,包含错误信息 return JsonResponse({'status': 'error', 'message': '数据验证失败', 'errors': data_saver.get_errors()}) except json.JSONDecodeError: + # 如果解析请求体中的JSON数据失败,返回错误响应 return JsonResponse({'status': 'error', 'message': '无法解析请求的JSON数据'}) + # 如果请求方法不是POST,返回错误响应 return JsonResponse({'status': 'error', 'message': '仅支持POST请求'}) diff --git a/templates/items_list.html b/templates/items_list.html index eeb8e09..4a0a365 100644 --- a/templates/items_list.html +++ b/templates/items_list.html @@ -2,6 +2,8 @@ {% load static tags %} {% block content %} + + {% block table_list_content %}
@@ -137,6 +139,7 @@
+ {% endblock %}