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 %}