diff --git a/test_mini/project.config.json b/test_mini/project.config.json index d0526c9..acd0dd0 100644 --- a/test_mini/project.config.json +++ b/test_mini/project.config.json @@ -6,6 +6,7 @@ "setting": { "urlCheck": false, "es6": true, + "enhance": true, "postcss": true, "minified": true, "newFeature": true, @@ -23,8 +24,7 @@ "outputPath": "" }, "useCompilerModule": true, - "userConfirmedUseCompilerModuleSwitch": false, - "enhance": true + "userConfirmedUseCompilerModuleSwitch": false }, "compileType": "miniprogram", "libVersion": "2.10.3", diff --git a/test_server/examtest/serializers.py b/test_server/examtest/serializers.py index 7f7ca1e..dd656af 100644 --- a/test_server/examtest/serializers.py +++ b/test_server/examtest/serializers.py @@ -136,6 +136,12 @@ class PaperQuestionsDetailSerializer(serializers.ModelSerializer): model = PaperQuestions fields = ('id','name','options','right','type','level','total_score','questioncat_name') + @staticmethod + def setup_eager_loading(queryset): + """ Perform necessary eager loading of data. """ + queryset = queryset.prefetch_related('question',) + return queryset + class PaperDetailSerializer(serializers.ModelSerializer): create_time = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S", required=False, read_only=True) update_time = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S", required=False, read_only=True) @@ -146,15 +152,10 @@ class PaperDetailSerializer(serializers.ModelSerializer): fields = '__all__' def get_questions(self, instance): - queryset = instance.questions.all().order_by('type') + queryset = PaperQuestions.objects.filter(paper=instance).order_by('question__type') + queryset = PaperQuestionsDetailSerializer.setup_eager_loading(queryset) return PaperQuestionsDetailSerializer(queryset, many=True).data - # @staticmethod - # def setup_eager_loading(queryset): - # """ Perform necessary eager loading of data. """ - # queryset = queryset.prefetch_related( - # 'questions',) - # return queryset class PaperQuestionsCreateSerializer(serializers.ModelSerializer): class Meta: diff --git a/test_server/examtest/views.py b/test_server/examtest/views.py index 3a54ba9..94fb73a 100644 --- a/test_server/examtest/views.py +++ b/test_server/examtest/views.py @@ -37,7 +37,7 @@ class AnswerDetailView(APIView): def get(self, request, *args, **kwargs): queryset = AnswerDetail.objects.all() if request.query_params.get('examtest', None): - queryset = queryset.filter(examtest=request.query_params.get('examtest')) + queryset = queryset.filter(examtest=request.query_params.get('examtest')).order_by('question__type') queryset = AnswerDetailSerializer.setup_eager_loading(queryset) serializer = AnswerDetailSerializer(instance=queryset,many=True) return Response(serializer.data)