update announcement and problem list serializer

This commit is contained in:
yuetsh
2024-06-12 10:05:26 +08:00
parent 5a8fb8d81a
commit 8a47c6e0ef
4 changed files with 29 additions and 14 deletions

View File

@@ -18,6 +18,14 @@ class AnnouncementSerializer(serializers.ModelSerializer):
fields = "__all__"
class AnnouncementListSerializer(serializers.ModelSerializer):
created_by = UsernameSerializer()
class Meta:
model = Announcement
exclude = ['content']
class EditAnnouncementSerializer(serializers.Serializer):
id = serializers.IntegerField()
title = serializers.CharField(max_length=64)

View File

@@ -1,10 +1,18 @@
from utils.api import APIView
from announcement.models import Announcement
from announcement.serializers import AnnouncementSerializer
from announcement.serializers import AnnouncementSerializer, AnnouncementListSerializer
class AnnouncementAPI(APIView):
def get(self, request):
id = request.GET.get("id")
if id:
try:
announcement = Announcement.objects.get(id=id, visible=True)
return self.success(AnnouncementSerializer(announcement).data)
except Announcement.DoesNotExist:
return self.error("Announcement does not exist")
announcements = Announcement.objects.filter(visible=True)
return self.success(self.paginate_data(request, announcements, AnnouncementSerializer))
return self.success(self.paginate_data(request, announcements, AnnouncementListSerializer))