Browse Source

正式考试/模拟考试

wushaodong 3 years ago
parent
commit
2dc920a24f
2 changed files with 20 additions and 28 deletions
  1. 10 14
      apps/api/staff/exam/views.py
  2. 10 14
      apps/api/staff/mock/views.py

+ 10 - 14
apps/api/staff/exam/views.py

@@ -170,48 +170,44 @@ class ExamLogViewSet(CustomModelViewSet):
 
                 # 右侧习题类别列表
                 # 单选、多选、填空。选择答案后,可能会把答案清空,得加上NOTDONE过滤
-                questions = ExamPaperDetail.objects.filter(main=instance.exampaper, delete=False).values('id','question_id',
-                                                                                                         )
+                questions = ExamPaperDetail.objects.filter(main=instance.exampaper, delete=False).values_list('id',
+                                                                                                              flat=True)
                 single_questions_list = []
                 for single in questions.filter(question__type=ExamQuestion.SINGLE):
-                    answer_log = ExamAnswerLog.objects.filter(main=instance, detail=single['id'])
+                    answer_log = ExamAnswerLog.objects.filter(main=instance, detail=single)
                     single_questions_list.append(
                         {
-                            'question_id': single['id'],
-                            'question': single['question_id'],
+                            'question_id': single,
                             'complete': answer_log and True or False,
                         }
                     )
                 # 多选题
                 multiple_questions_list = []
                 for multiple in questions.filter(question__type=ExamQuestion.MULTIPLE):
-                    answer_log = ExamAnswerLog.objects.filter(main=instance, detail=multiple['id'])
+                    answer_log = ExamAnswerLog.objects.filter(main=instance, detail=multiple)
                     multiple_questions_list.append(
                         {
-                            'question_id': multiple['id'],
-                            'question': multiple['question_id'],
+                            'question_id': multiple,
                             'complete': answer_log and True or False,
                         }
                     )
                 # 填空题
                 fill_questions_list = []
                 for fill in questions.filter(question__type=ExamQuestion.FILL):
-                    answer_log = ExamAnswerLog.objects.filter(main=instance, detail=fill['id'])
+                    answer_log = ExamAnswerLog.objects.filter(main=instance, detail=fill)
                     fill_questions_list.append(
                         {
-                            'question_id': fill['id'],
-                            'question': fill['question_id'],
+                            'question_id': fill,
                             'complete': answer_log and True or False,
                         }
                     )
                 # 判断题
                 judgment_questions_list = []
                 for judgment in questions.filter(question__type=ExamQuestion.JUDGMENT):
-                    answer_log = ExamAnswerLog.objects.filter(main=instance, detail=judgment['id'])
+                    answer_log = ExamAnswerLog.objects.filter(main=instance, detail=judgment)
                     judgment_questions_list.append(
                         {
-                            'question_id': judgment['id'],
-                            'question': judgment['question_id'],
+                            'question_id': judgment,
                             'complete': answer_log and True or False,
                         }
                     )

+ 10 - 14
apps/api/staff/mock/views.py

@@ -184,48 +184,44 @@ class ExamLogViewSet(CustomModelViewSet):
 
                 # 右侧习题类别列表
                 # 单选、多选、填空。选择答案后,可能会把答案清空,得加上NOTDONE过滤
-                questions = ExamPaperDetail.objects.filter(main=instance.exampaper, delete=False).values('id','question_id',
-                                                                                                         )
+                questions = ExamPaperDetail.objects.filter(main=instance.exampaper, delete=False).values_list('id',
+                                                                                                              flat=True)
                 single_questions_list = []
                 for single in questions.filter(question__type=ExamQuestion.SINGLE):
-                    answer_log = ExamAnswerLog.objects.filter(main=instance, detail=single['id'])
+                    answer_log = ExamAnswerLog.objects.filter(main=instance, detail=single)
                     single_questions_list.append(
                         {
-                            'question_id': single['id'],
-                            'question': single['question_id'],
+                            'question_id': single,
                             'complete': answer_log and True or False,
                         }
                     )
                 # 多选题
                 multiple_questions_list = []
                 for multiple in questions.filter(question__type=ExamQuestion.MULTIPLE):
-                    answer_log = ExamAnswerLog.objects.filter(main=instance, detail=multiple['id'])
+                    answer_log = ExamAnswerLog.objects.filter(main=instance, detail=multiple)
                     multiple_questions_list.append(
                         {
-                            'question_id': multiple['id'],
-                            'question': multiple['question_id'],
+                            'question_id': multiple,
                             'complete': answer_log and True or False,
                         }
                     )
                 # 填空题
                 fill_questions_list = []
                 for fill in questions.filter(question__type=ExamQuestion.FILL):
-                    answer_log = ExamAnswerLog.objects.filter(main=instance, detail=fill['id'])
+                    answer_log = ExamAnswerLog.objects.filter(main=instance, detail=fill)
                     fill_questions_list.append(
                         {
-                            'question_id': fill['id'],
-                            'question': fill['question_id'],
+                            'question_id': fill,
                             'complete': answer_log and True or False,
                         }
                     )
                 # 判断题
                 judgment_questions_list = []
                 for judgment in questions.filter(question__type=ExamQuestion.JUDGMENT):
-                    answer_log = ExamAnswerLog.objects.filter(main=instance, detail=judgment['id'])
+                    answer_log = ExamAnswerLog.objects.filter(main=instance, detail=judgment)
                     judgment_questions_list.append(
                         {
-                            'question_id': judgment['id'],
-                            'question': judgment['question_id'],
+                            'question_id': judgment,
                             'complete': answer_log and True or False,
                         }
                     )