refector: 调整一下结构
This commit is contained in:
parent
4de3363f1d
commit
e8a86e6a26
|
@ -551,38 +551,32 @@ class ExamTestViewSet(PageOrNot, ModelViewSet):
|
|||
@transaction.atomic
|
||||
def create(self, request, *args, **kwargs):
|
||||
serializer = MoniTestSerializer(data = request.data)
|
||||
if serializer.is_valid():
|
||||
instance = serializer.save(consumer = request.user)
|
||||
if 'questions' in request.data:
|
||||
questions = []
|
||||
for i in request.data['questions']:
|
||||
question = {}
|
||||
question['question'] = i['id']
|
||||
question['examtest'] = instance.id
|
||||
question['score'] = i['score']
|
||||
if 'user_answer' in i:
|
||||
question['user_answer'] = i['user_answer']
|
||||
question['is_right'] = i['is_right']
|
||||
questions.append(question)
|
||||
serializer_detail = AnswerDetailCreateSerializer(data=questions, many=True)
|
||||
if serializer_detail.is_valid():
|
||||
serializer_detail.save()
|
||||
# 关联正式考试如有
|
||||
if request.data.get('exam', None):
|
||||
exam = Exam.objects.get(pk=request.data['exam'])
|
||||
instance.exam = exam
|
||||
instance.save()
|
||||
# 自动发证
|
||||
if exam.auto_issue and instance.is_pass:
|
||||
issue(instance)
|
||||
return Response(MoniTestSerializer(instance).data,status=status.HTTP_200_OK)
|
||||
else:
|
||||
return Response(serializer_detail.errors)
|
||||
|
||||
else:
|
||||
return Response({'error':'答题记录不存在'})
|
||||
else:
|
||||
return Response(serializer.errors)
|
||||
serializer.is_valid(raise_exception=True)
|
||||
instance = serializer.save(consumer = request.user)
|
||||
if 'questions' in request.data:
|
||||
questions = []
|
||||
for i in request.data['questions']:
|
||||
question = {}
|
||||
question['question'] = i['id']
|
||||
question['examtest'] = instance.id
|
||||
question['score'] = i['score']
|
||||
if 'user_answer' in i:
|
||||
question['user_answer'] = i['user_answer']
|
||||
question['is_right'] = i['is_right']
|
||||
questions.append(question)
|
||||
serializer_detail = AnswerDetailCreateSerializer(data=questions, many=True)
|
||||
serializer_detail.is_valid(raise_exception=True)
|
||||
serializer_detail.save()
|
||||
# 关联正式考试如有
|
||||
if request.data.get('exam', None):
|
||||
exam = Exam.objects.get(pk=request.data['exam'])
|
||||
instance.exam = exam
|
||||
instance.save()
|
||||
# 自动发证
|
||||
if exam.auto_issue and instance.is_pass:
|
||||
issue(instance)
|
||||
return Response(MoniTestSerializer(instance).data,status=status.HTTP_200_OK)
|
||||
raise ParseError('答题记录不存在')
|
||||
|
||||
@action(methods=['get'], detail=False,
|
||||
url_path='export', url_name='export_test', perms_map=[{'*':'export_test'}])
|
||||
|
|
Loading…
Reference in New Issue