serializer 修改

This commit is contained in:
caoqianming 2022-11-08 16:19:54 +08:00
parent 701784fb53
commit 39a8eb9740
2 changed files with 9 additions and 8 deletions

View File

@ -74,7 +74,7 @@ class ExamCreateUpdateSerializer(ModelSerializer):
class Meta: class Meta:
model = Exam model = Exam
fields = ['name', 'place', 'open_time', fields = ['name', 'place', 'open_time',
'close_time', 'proctor_name', 'proctor_phone'] 'close_time', 'proctor_name', 'proctor_phone', 'chance', 'paper']
class ExamListSerializer(ModelSerializer): class ExamListSerializer(ModelSerializer):

View File

@ -59,7 +59,7 @@ class QuestionViewSet(ModelViewSet):
search_fields = ['name', 'options', 'resolution'] search_fields = ['name', 'options', 'resolution']
@action(methods=['get'], detail=False, @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): def export_question(self, request):
""" """
导出题目 导出题目
@ -70,7 +70,7 @@ class QuestionViewSet(ModelViewSet):
path = export_question(queryset) path = export_question(queryset)
return Response({'path': path}) 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): def enable(self, request):
""" """
启用题目 启用题目
@ -83,7 +83,7 @@ class QuestionViewSet(ModelViewSet):
return Response(status=200) return Response(status=200)
@action(methods=['post'], detail=False, @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): def import_question(self, request):
""" """
导入题目 导入题目
@ -227,7 +227,7 @@ class PaperViewSet(ModelViewSet):
return PaperDetailSerializer return PaperDetailSerializer
elif self.action in ['create', 'update']: elif self.action in ['create', 'update']:
return PaperCreateUpdateSerializer return PaperCreateUpdateSerializer
return PaperSerializer return super().get_serializer_class()
def create(self, request, *args, **kwargs): def create(self, request, *args, **kwargs):
sr = PaperCreateUpdateSerializer(data=request.data) sr = PaperCreateUpdateSerializer(data=request.data)
@ -265,6 +265,7 @@ class ExamViewSet(ModelViewSet):
queryset = Exam.objects.all().select_related('paper', 'create_by') queryset = Exam.objects.all().select_related('paper', 'create_by')
ordering = ['-id'] ordering = ['-id']
search_fields = ('name',) search_fields = ('name',)
serializer_class = ExamListSerializer
filterset_class = ExamFilter filterset_class = ExamFilter
def get_serializer_class(self): def get_serializer_class(self):
@ -272,7 +273,7 @@ class ExamViewSet(ModelViewSet):
return ExamCreateUpdateSerializer return ExamCreateUpdateSerializer
elif self.action in ['retrieve']: elif self.action in ['retrieve']:
return ExamDetailSerializer return ExamDetailSerializer
return ExamListSerializer return super().get_serializer_class()
def destroy(self, request, *args, **kwargs): def destroy(self, request, *args, **kwargs):
instance = self.get_object() instance = self.get_object()
@ -336,7 +337,7 @@ class ExamRecordViewSet(ModelViewSet):
def get_serializer_class(self): def get_serializer_class(self):
if self.action == 'retrieve': if self.action == 'retrieve':
return ExamRecordDetailSerializer return ExamRecordDetailSerializer
return ExamRecordListSerializer return super().get_serializer_class()
def perform_destroy(self, instance): # 考试记录物理删除 def perform_destroy(self, instance): # 考试记录物理删除
instance.delete(soft=False) instance.delete(soft=False)
@ -363,7 +364,7 @@ class ExamRecordViewSet(ModelViewSet):
serializer = self.get_serializer(page, many=True) serializer = self.get_serializer(page, many=True)
return self.get_paginated_response(serializer.data) 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): def submit(self, request, pk=None):
''' '''
提交答卷 提交答卷