新增“数据编辑”

This commit is contained in:
2025-11-13 21:58:52 +08:00
parent 2c31e1571f
commit 83a9dd04ba
6 changed files with 79 additions and 42 deletions

View File

@@ -11,21 +11,8 @@ from django.http import JsonResponse
from django.shortcuts import render
from django.views.decorators.http import require_http_methods
from django.views.decorators.csrf import ensure_csrf_cookie
from django.views.decorators.csrf import csrf_exempt
from .es_connect import (
create_index_with_mapping,
insert_data,
search_data,
search_by_any_field,
search_all,
delete_by_id,
update_by_id,
get_by_id,
write_user_data,
get_all_users,
delete_user_by_username,
update_user_permission
)
from django.views.decorators.csrf import csrf_exempt, ensure_csrf_cookie
from .es_connect import *
from openai import OpenAI
@@ -33,6 +20,7 @@ from openai import OpenAI
@csrf_exempt
def init_index(request):
"""初始化ES索引"""
print("⚠️ init_index 被调用了!")
try:
create_index_with_mapping()
return JsonResponse({"status": "success", "message": "索引初始化成功"})
@@ -81,8 +69,7 @@ def fuzzy_search(request):
return JsonResponse({"status": "success", "data": results})
except Exception as e:
return JsonResponse({"status": "error", "message": str(e)}, status=500)
@require_http_methods(["GET"])
def get_all_data(request):
"""获取所有数据"""
@@ -301,6 +288,7 @@ def ocr_and_extract_info(image_path: str):
@require_http_methods(["GET"])
@ensure_csrf_cookie
def upload_page(request):
session_user_id = request.session.get("user_id")
if session_user_id is None:
@@ -315,7 +303,12 @@ def upload_page(request):
@require_http_methods(["POST"])
def upload(request):
if not request.session.get("user_id"):
return JsonResponse({"status": "error", "message": "未登录"}, status=401)
fallback_uid = request.POST.get("user_id") or request.GET.get("user_id")
if fallback_uid:
request.session["user_id"] = fallback_uid
request.session.setdefault("permission", 1)
else:
return JsonResponse({"status": "error", "message": "未登录"}, status=401)
file = request.FILES.get("file")
if not file:
@@ -352,7 +345,17 @@ def upload(request):
@require_http_methods(["POST"])
def confirm(request):
if not request.session.get("user_id"):
return JsonResponse({"status": "error", "message": "未登录"}, status=401)
# 允许从payload中带入user_id作为后备便于前端已知用户时继续操作
try:
payload_for_uid = json.loads(request.body.decode("utf-8"))
except Exception:
payload_for_uid = {}
fb_uid = (payload_for_uid or {}).get("user_id")
if fb_uid:
request.session["user_id"] = fb_uid
request.session.setdefault("permission", 1)
else:
return JsonResponse({"status": "error", "message": "未登录"}, status=401)
try:
payload = json.loads(request.body.decode("utf-8"))