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--> <!--pages/lianxi/index.wxml-->
<view class="page"> <view class="page">
<view class="page__bd"> <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"> <view class="weui-panel__bd">
<block wx:for="{{paperData}}" wx:key="unique"> <block wx:for="{{paperData}}" wx:key="unique">
<view class="weui-media-box weui-media-box_appmsg"> <view class="weui-media-box weui-media-box_appmsg">

View File

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

View File

@ -27,3 +27,10 @@ class ConsumerSerializer(serializers.ModelSerializer):
class Meta: class Meta:
model = Consumer model = Consumer
exclude = ('avatar','collects') 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',) filterset_fields = ('company',)
search_fields = ('^name',) 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): def create(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.data) serializer = self.get_serializer(data=request.data)
if serializer.is_valid(): if serializer.is_valid():

View File

@ -32,6 +32,12 @@ class WorkScopeSerializer(serializers.ModelSerializer):
class Meta: class Meta:
model = WorkScope model = WorkScope
fields = '__all__' 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): class MoniTestSerializer(serializers.ModelSerializer):
""" """
@ -66,9 +72,27 @@ class ExamTestListSerializer(serializers.ModelSerializer):
class AnswerDetailSerializer(serializers.ModelSerializer): class AnswerDetailSerializer(serializers.ModelSerializer):
class Meta: class Meta:
model = AnswerDetail model = AnswerDetail
fields = '__all__' exclude = ('examtest',)
# fields = '__all__'
depth = 1 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 AnswerDetailCreateSerializer(serializers.ModelSerializer):
class Meta: class Meta:
model = AnswerDetail model = AnswerDetail

View File

@ -36,6 +36,7 @@ class AnswerDetailView(APIView):
queryset = AnswerDetail.objects.all() queryset = AnswerDetail.objects.all()
if request.query_params.get('examtest', None): 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'))
queryset = AnswerDetailSerializer.setup_eager_loading(queryset)
serializer = AnswerDetailSerializer(instance=queryset,many=True) serializer = AnswerDetailSerializer(instance=queryset,many=True)
return Response(serializer.data) return Response(serializer.data)
@ -56,6 +57,11 @@ class WorkScopeViewSet(ModelViewSet):
filterset_fields = ['subject'] filterset_fields = ['subject']
search_fields = ('^name',) 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', @action(methods=['get'], detail=True,url_path='monitest', url_name='gen_monitest',
authentication_classes=[],permission_classes=[], authentication_classes=[],permission_classes=[],
perms_map=[{'get':'gen_monitest'}]) 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): class QuestioncatSerializer(serializers.ModelSerializer):
""" """

View File

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