修复 views.py
This commit is contained in:
@@ -4,6 +4,7 @@ from django.utils import timezone
|
||||
from django.db.models import Count
|
||||
from django.core.mail import send_mail, EmailMessage
|
||||
from django.conf import settings
|
||||
from django.views.decorators.csrf import csrf_exempt
|
||||
from datetime import timedelta, datetime
|
||||
import os
|
||||
from loguru import logger
|
||||
@@ -804,3 +805,56 @@ def pdf_list(request):
|
||||
}
|
||||
|
||||
return render(request, 'core/pdf_list.html', context)
|
||||
|
||||
@csrf_exempt
|
||||
def api_submit_summary(request):
|
||||
"""API提交汇总记录 - 仅接受指定分类和发言人的记录"""
|
||||
logger.info("API: 收到汇总记录提交请求")
|
||||
|
||||
if request.method != 'POST':
|
||||
return JsonResponse({'success': False, 'message': '只支持POST请求'}, status=405)
|
||||
|
||||
try:
|
||||
content = request.POST.get('content', '').strip()
|
||||
|
||||
if not content:
|
||||
return JsonResponse({'success': False, 'message': '内容不能为空'}, status=400)
|
||||
|
||||
category_name = "定期"
|
||||
speaker_name = "机器人"
|
||||
|
||||
try:
|
||||
category = SummaryCategory.objects.get(name=category_name)
|
||||
except SummaryCategory.DoesNotExist:
|
||||
logger.error(f"API: 分类 '{category_name}' 不存在")
|
||||
return JsonResponse({'success': False, 'message': f"分类 '{category_name}' 不存在"}, status=400)
|
||||
|
||||
try:
|
||||
speaker = FamilyMember.objects.get(name=speaker_name)
|
||||
except FamilyMember.DoesNotExist:
|
||||
logger.error(f"API: 发言人 '{speaker_name}' 不存在")
|
||||
return JsonResponse({'success': False, 'message': f"发言人 '{speaker_name}' 不存在"}, status=400)
|
||||
|
||||
import socket
|
||||
hostname = socket.gethostname()
|
||||
local_ip = socket.gethostbyname(hostname)
|
||||
source = f"{hostname} ({local_ip})"
|
||||
|
||||
summary = Summary.objects.create(
|
||||
date=timezone.now().date(),
|
||||
category=category,
|
||||
speaker=speaker,
|
||||
content=content,
|
||||
source=source
|
||||
)
|
||||
|
||||
logger.info(f"API: 汇总记录创建成功,ID={summary.id}")
|
||||
return JsonResponse({
|
||||
'success': True,
|
||||
'message': '提交成功',
|
||||
'id': summary.id
|
||||
})
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"API: 提交汇总记录失败: {str(e)}")
|
||||
return JsonResponse({'success': False, 'message': f"提交失败: {str(e)}"}, status=500)
|
||||
|
||||
Reference in New Issue
Block a user