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