From b6e549b9a7b50bab184671f249ba418f22af5e77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E5=89=8D=E6=98=8E?= <909355014@qq.com> Date: Sat, 25 Jun 2022 13:41:15 +0800 Subject: [PATCH] =?UTF-8?q?opl=20worker=20=E8=BF=94=E5=9B=9E=E8=AF=A6?= =?UTF-8?q?=E7=BB=86=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/opm/serializers.py | 11 +++++++++-- apps/opm/views.py | 4 ++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/apps/opm/serializers.py b/apps/opm/serializers.py index 73fe75cd..b5c6ab9c 100644 --- a/apps/opm/serializers.py +++ b/apps/opm/serializers.py @@ -1,6 +1,6 @@ from apps.hrm.models import Certificate from apps.opm.models import GasCheck, Operation, Opl, OplCate, OplCert, OplWorker -from apps.system.serializers import DictSerializer, DictSimpleSerializer +from apps.system.serializers import DictSerializer, DictSimpleSerializer, UserSimpleSerializer from apps.utils.serializers import CustomModelSerializer from apps.utils.constants import EXCLUDE_FIELDS from rest_framework import serializers @@ -100,11 +100,18 @@ class OplWorkerUpdateSerializer(CustomModelSerializer): return oplw -class OplWorkerSerializer(): +class OplWorkerSerializer(CustomModelSerializer): + worker_ = UserSimpleSerializer(source='worker', read_only=True) + certificates_ = serializers.SerializerMethodField() + class Meta: model = OplWorker fields = '__all__' + def get_certificates_(self, obj): + cs = OplCert.objects.filter(opl_worker=obj) + return cs.values('certificate', 'name', 'type', 'number', 'issue_date', 'expiration_date', 'review_date', 'file') + class GasCheckCreateUpdateSerializer(CustomModelSerializer): class Meta: diff --git a/apps/opm/views.py b/apps/opm/views.py index 2533ade2..46d87e1b 100644 --- a/apps/opm/views.py +++ b/apps/opm/views.py @@ -1,7 +1,7 @@ from django.shortcuts import render from rest_framework.response import Response from apps.opm.models import GasCheck, Operation, Opl, OplCate, OplWorker -from apps.opm.serializers import GasCheckCreateUpdateSerializer, GasCheckSerializer, OperationCreateUpdateSerializer, OperationSerializer, OplCateCreateUpdateSerializer, OplCateDetailSerializer, OplCateSerializer, OplCreateUpdateSerializer, OplSerializer, OplWorkerCreateSerializer, OplWorkerUpdateSerializer +from apps.opm.serializers import GasCheckCreateUpdateSerializer, GasCheckSerializer, OperationCreateUpdateSerializer, OperationSerializer, OplCateCreateUpdateSerializer, OplCateDetailSerializer, OplCateSerializer, OplCreateUpdateSerializer, OplSerializer, OplWorkerCreateSerializer, OplWorkerSerializer, OplWorkerUpdateSerializer from apps.utils.viewsets import CustomGenericViewSet, CustomModelViewSet from rest_framework.exceptions import ParseError from rest_framework.mixins import CreateModelMixin, ListModelMixin, DestroyModelMixin @@ -64,7 +64,7 @@ class OplWorkerViewSet(CustomModelViewSet): queryset = OplWorker.objects.all() create_serializer_class = OplWorkerCreateSerializer update_serializer_class = OplWorkerUpdateSerializer - serializer_class = OplSerializer + serializer_class = OplWorkerSerializer def destroy(self, request, *args, **kwargs): obj = self.get_object()