From 39a8eb9740a0eb395abafaa0c550fad117016229 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Tue, 8 Nov 2022 16:19:54 +0800 Subject: [PATCH] =?UTF-8?q?serializer=20=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/apps/exam/serializers.py | 2 +- server/apps/exam/views.py | 15 ++++++++------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/server/apps/exam/serializers.py b/server/apps/exam/serializers.py index cab519c..aeeb2c6 100644 --- a/server/apps/exam/serializers.py +++ b/server/apps/exam/serializers.py @@ -74,7 +74,7 @@ class ExamCreateUpdateSerializer(ModelSerializer): class Meta: model = Exam fields = ['name', 'place', 'open_time', - 'close_time', 'proctor_name', 'proctor_phone'] + 'close_time', 'proctor_name', 'proctor_phone', 'chance', 'paper'] class ExamListSerializer(ModelSerializer): diff --git a/server/apps/exam/views.py b/server/apps/exam/views.py index 9478c32..ca67fe8 100644 --- a/server/apps/exam/views.py +++ b/server/apps/exam/views.py @@ -59,7 +59,7 @@ class QuestionViewSet(ModelViewSet): search_fields = ['name', 'options', 'resolution'] @action(methods=['get'], detail=False, - url_path='export', url_name='export_question', perms_map=[{'get': '*'}]) + url_path='export', url_name='export_question', perms_map=[{'get': '*'}], serializer_class=Serializer) def export_question(self, request): """ 导出题目 @@ -70,7 +70,7 @@ class QuestionViewSet(ModelViewSet): path = export_question(queryset) return Response({'path': path}) - @action(methods=['post'], detail=False, url_name='enable_question', perms_map={'post': 'question'}) + @action(methods=['post'], detail=False, url_name='enable_question', perms_map={'post': 'question'}, serializer_class=Serializer) def enable(self, request): """ 启用题目 @@ -83,7 +83,7 @@ class QuestionViewSet(ModelViewSet): return Response(status=200) @action(methods=['post'], detail=False, - url_path='import', url_name='import_question', perms_map={'post': 'question'}) + url_path='import', url_name='import_question', perms_map={'post': 'question'}, serializer_class=Serializer) def import_question(self, request): """ 导入题目 @@ -227,7 +227,7 @@ class PaperViewSet(ModelViewSet): return PaperDetailSerializer elif self.action in ['create', 'update']: return PaperCreateUpdateSerializer - return PaperSerializer + return super().get_serializer_class() def create(self, request, *args, **kwargs): sr = PaperCreateUpdateSerializer(data=request.data) @@ -265,6 +265,7 @@ class ExamViewSet(ModelViewSet): queryset = Exam.objects.all().select_related('paper', 'create_by') ordering = ['-id'] search_fields = ('name',) + serializer_class = ExamListSerializer filterset_class = ExamFilter def get_serializer_class(self): @@ -272,7 +273,7 @@ class ExamViewSet(ModelViewSet): return ExamCreateUpdateSerializer elif self.action in ['retrieve']: return ExamDetailSerializer - return ExamListSerializer + return super().get_serializer_class() def destroy(self, request, *args, **kwargs): instance = self.get_object() @@ -336,7 +337,7 @@ class ExamRecordViewSet(ModelViewSet): def get_serializer_class(self): if self.action == 'retrieve': return ExamRecordDetailSerializer - return ExamRecordListSerializer + return super().get_serializer_class() def perform_destroy(self, instance): # 考试记录物理删除 instance.delete(soft=False) @@ -363,7 +364,7 @@ class ExamRecordViewSet(ModelViewSet): serializer = self.get_serializer(page, many=True) return self.get_paginated_response(serializer.data) - @action(methods=['post'], detail=True, perms_map=[{'post': '*'}], serializer_class=Serializer, permission_classes = [IsAuthenticated]) + @action(methods=['post'], detail=True, perms_map=[{'post': '*'}], serializer_class=ExamRecordSubmitSerializer, permission_classes = [IsAuthenticated]) def submit(self, request, pk=None): ''' 提交答卷