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:
model = Exam
fields = ['name', 'place', 'open_time',
'close_time', 'proctor_name', 'proctor_phone']
'close_time', 'proctor_name', 'proctor_phone', 'chance', 'paper']
class ExamListSerializer(ModelSerializer):

View File

@ -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):
'''
提交答卷