修复 views.py
This commit is contained in:
@@ -4,6 +4,7 @@ from django.utils import timezone
|
|||||||
from django.db.models import Count
|
from django.db.models import Count
|
||||||
from django.core.mail import send_mail, EmailMessage
|
from django.core.mail import send_mail, EmailMessage
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
from django.views.decorators.csrf import csrf_exempt
|
||||||
from datetime import timedelta, datetime
|
from datetime import timedelta, datetime
|
||||||
import os
|
import os
|
||||||
from loguru import logger
|
from loguru import logger
|
||||||
@@ -804,3 +805,56 @@ def pdf_list(request):
|
|||||||
}
|
}
|
||||||
|
|
||||||
return render(request, 'core/pdf_list.html', context)
|
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