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