This commit is contained in:
caoqianming 2020-04-04 16:48:47 +08:00
parent 0a9bc85fb3
commit 72b2824b0c
8 changed files with 59 additions and 6 deletions

View File

@ -1,7 +1,9 @@
<!--pages/lianxi/index.wxml-->
<view class="page">
<view class="page__bd">
<view class="weui-panel__hd">当前工作类别押题卷</view>
<view class="weui-panel__hd">当前工作类别押题卷
<span style="color:red" wx:if="{{count==0}}">(暂无)</span>
</view>
<view class="weui-panel__bd">
<block wx:for="{{paperData}}" wx:key="unique">
<view class="weui-media-box weui-media-box_appmsg">

View File

@ -4,7 +4,7 @@
"ignore": []
},
"setting": {
"urlCheck": true,
"urlCheck": false,
"es6": true,
"postcss": true,
"minified": true,

View File

@ -27,3 +27,10 @@ class ConsumerSerializer(serializers.ModelSerializer):
class Meta:
model = Consumer
exclude = ('avatar','collects')
@staticmethod
def setup_eager_loading(queryset):
""" Perform necessary eager loading of data. """
queryset = queryset.select_related('company','workscope')
queryset = queryset.prefetch_related('subjects',)
return queryset

View File

@ -84,6 +84,11 @@ class ConsumerViewSet(ModelViewSet):
filterset_fields = ('company',)
search_fields = ('^name',)
def get_queryset(self):
queryset = self.queryset
queryset = self.get_serializer_class().setup_eager_loading(queryset)
return queryset
def create(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.data)
if serializer.is_valid():

View File

@ -32,6 +32,12 @@ class WorkScopeSerializer(serializers.ModelSerializer):
class Meta:
model = WorkScope
fields = '__all__'
@staticmethod
def setup_eager_loading(queryset):
""" Perform necessary eager loading of data. """
queryset = queryset.prefetch_related('questioncat',)
return queryset
class MoniTestSerializer(serializers.ModelSerializer):
"""
@ -66,9 +72,27 @@ class ExamTestListSerializer(serializers.ModelSerializer):
class AnswerDetailSerializer(serializers.ModelSerializer):
class Meta:
model = AnswerDetail
fields = '__all__'
exclude = ('examtest',)
# fields = '__all__'
depth = 1
@staticmethod
def setup_eager_loading(queryset):
""" Perform necessary eager loading of data. """
# select_related for "to-one" relationships
queryset = queryset.select_related('examtest',)
# prefetch_related for "to-many" relationships
queryset = queryset.prefetch_related(
'question',)
# Prefetch for subsets of relationships
# queryset = queryset.prefetch_related(
# Prefetch('unaffiliated_attendees',
# queryset=Attendee.objects.filter(organization__isnull=True))
# )
return queryset
class AnswerDetailCreateSerializer(serializers.ModelSerializer):
class Meta:
model = AnswerDetail

View File

@ -36,6 +36,7 @@ class AnswerDetailView(APIView):
queryset = AnswerDetail.objects.all()
if request.query_params.get('examtest', None):
queryset = queryset.filter(examtest=request.query_params.get('examtest'))
queryset = AnswerDetailSerializer.setup_eager_loading(queryset)
serializer = AnswerDetailSerializer(instance=queryset,many=True)
return Response(serializer.data)
@ -56,6 +57,11 @@ class WorkScopeViewSet(ModelViewSet):
filterset_fields = ['subject']
search_fields = ('^name',)
def get_queryset(self):
queryset = self.queryset
queryset = self.get_serializer_class().setup_eager_loading(queryset)
return queryset
@action(methods=['get'], detail=True,url_path='monitest', url_name='gen_monitest',
authentication_classes=[],permission_classes=[],
perms_map=[{'get':'gen_monitest'}])

View File

@ -20,7 +20,16 @@ class SubjectSerializer(serializers.ModelSerializer):
class QuestioncatSerializerDefault(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)
subject_name = serializers.StringRelatedField(source='pid')
class Meta:
model = Questioncat
fields = '__all__'
class QuestioncatSerializer(serializers.ModelSerializer):
"""

View File

@ -13,7 +13,7 @@ import json
from utils.custom import CommonPagination
from .models import Questioncat, Question
from .serializers import QuestioncatSerializer, QuestionSerializer, SubjectSerializer
from .serializers import QuestioncatSerializer, QuestionSerializer, SubjectSerializer, QuestioncatSerializerDefault
from server import settings
from crm.models import PaySubject
from examtest.models import WorkScope
@ -42,7 +42,7 @@ class QuestioncatViewSet(ModelViewSet):
{'get': 'questioncat_list'}, {'post': 'questioncat_create'},
{'put': 'questioncat_update'}, {'delete': 'questioncat_delete'})
queryset = Questioncat.objects.filter(is_delete=0,is_subject=False).all()
serializer_class = QuestioncatSerializer
serializer_class = QuestioncatSerializerDefault
pagination_class = CommonPagination
ordering_fields = ['id']
ordering = ['type','id']