liutao 1 день тому
батько
коміт
23a3ade0ce
1 змінених файлів з 12 додано та 8 видалено
  1. 12 8
      apps/api/staff/exam/views.py

+ 12 - 8
apps/api/staff/exam/views.py

@@ -139,8 +139,9 @@ class ExamLogViewSet(CustomModelViewSet):
                                 break
 
                     if has_answers > 0:
-                        answer_log, create = ExamAnswerLog.objects.get_or_create(main=instance,
-                                                                                 detail=detail, )
+                        answer_log = ExamAnswerLog.objects.filter(main=instance, detail=detail).first()
+                        if not answer_log:
+                            answer_log = ExamAnswerLog.objects.create(main=instance, detail=detail)
                         if now_question.type <= ExamQuestion.MULTIPLE:
                             # 单选、多选
                             answers.sort()
@@ -167,11 +168,12 @@ class ExamLogViewSet(CustomModelViewSet):
                             answer_log.save()
                     else:
                         try:
-                            answer_log = ExamAnswerLog.objects.get(main=instance, detail=detail)
-                            ExamAnswerOptionLog.objects.filter(main=answer_log).delete()
-                            ExamAnswerFillLog.objects.filter(main=answer_log).delete()
-                            answer_log.status = ExamAnswerLog.NOTDONE
-                            answer_log.save()
+                            answer_log = ExamAnswerLog.objects.filter(main=instance, detail=detail).first()
+                            if answer_log:
+                                ExamAnswerOptionLog.objects.filter(main=answer_log).delete()
+                                ExamAnswerFillLog.objects.filter(main=answer_log).delete()
+                                answer_log.status = ExamAnswerLog.NOTDONE
+                                answer_log.save()
                         except ExamAnswerLog.DoesNotExist:
                             # traceback.print_exc()
                             pass
@@ -318,7 +320,9 @@ class ExamLogViewSet(CustomModelViewSet):
                 paper_details = ExamPaperDetail.objects.filter(main=instance.exampaper, delete=False)
                 for detail in paper_details:
                     # 创建考试未答题记录,如果没有找到答案记录,则该题保留未答状态
-                    answer_log, create = ExamAnswerLog.objects.get_or_create(main=instance, detail=detail)
+                    answer_log = ExamAnswerLog.objects.filter(main=instance, detail=detail).first()
+                    if not answer_log:
+                        answer_log = ExamAnswerLog.objects.create(main=instance, detail=detail)
                     # answer_logs = ExamAnswerLog.objects.filter(main=instance)
                     # for answer_log in answer_logs:
                     question = detail.question