From 90ec378dbca8cd7a6ac1ebc85c5220b9d6b32af5 Mon Sep 17 00:00:00 2001 From: 27942 Date: Mon, 29 Dec 2025 11:53:05 +0800 Subject: [PATCH] fdgg --- business/views.py | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/business/views.py b/business/views.py index 2c5fcdb..8a13a1a 100644 --- a/business/views.py +++ b/business/views.py @@ -1524,14 +1524,18 @@ class EditBulletin(APIView): content = request.data.get('content') file = request.FILES.getlist('file') state = request.data.get('state') - token = request.META.get('HTTP_AUTHORIZATION') + token = request.META.get('token') # 从中间件设置的 token 获取 if not all([title, content, ID]): return Response({'status': 'error', 'message': '缺少参数', 'code': 1}, status=status.HTTP_400_BAD_REQUEST) + try: + ann = Announcement.objects.get(id=ID) + except Announcement.DoesNotExist: + return Response({'status': 'error', 'message': '公告不存在', 'code': 1}, status=status.HTTP_404_NOT_FOUND) + now = datetime.now() date_str = now.strftime('%Y-%m-%d') - ann = Announcement.objects.get(id=ID) if state: bol = 0 @@ -1540,22 +1544,32 @@ class EditBulletin(APIView): ann.state = bol ann.save(update_fields=['state']) - user = User.objects.get(token=token).username + # 获取用户信息(如果 token 存在) + if token: + try: + user = User.objects.get(token=token).username + except User.DoesNotExist: + # 如果用户不存在,使用原有用户名 + user = ann.username + else: + # 如果 token 不存在,使用原有用户名 + user = ann.username + if title: - ann.title = title # 去掉多余的逗号 + ann.title = title ann.save(update_fields=['title']) if content: - ann.content = content # 去掉多余的逗号 + ann.content = content ann.save(update_fields=['content']) if file: - ann.file = json.dumps([f.name for f in file]) # 假设你想保存文件名列表 + ann.file = json.dumps(flies(file)) # 使用 flies 函数处理文件 ann.save(update_fields=['file']) - ann.username = user # 去掉多余的逗号 - ann.times = date_str # 去掉多余的逗号 + ann.username = user + ann.times = date_str ann.save(update_fields=['username', 'times']) - return Response({'message': '添加成功', 'code': 0}, status=status.HTTP_200_OK) + return Response({'message': '编辑成功', 'code': 0}, status=status.HTTP_200_OK) class deleteBulletin(APIView):