From 2e504b12b0e7963c2073fe0267f2e8392dae77ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E5=89=8D=E6=98=8E?= <909355014@qq.com> Date: Tue, 28 Jun 2022 16:30:34 +0800 Subject: [PATCH] =?UTF-8?q?rpj=20member=20list=20=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/rpm/serializers.py | 8 ++++++++ apps/rpm/views.py | 3 ++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/apps/rpm/serializers.py b/apps/rpm/serializers.py index b98cdd46..36a3273a 100644 --- a/apps/rpm/serializers.py +++ b/apps/rpm/serializers.py @@ -100,6 +100,7 @@ class RemployeeCreateSerializer(CustomModelSerializer): class RemployeeSerializer(CustomModelSerializer): + class Meta: model = Remployee fields = '__all__' @@ -194,10 +195,17 @@ class RpjmemberUpdateSerializer(CustomModelSerializer): class RpjmemberSerializer(CustomModelSerializer): + remployee_ = RemployeeSerializer(source='remployee', read_only=True) + rcertificates_ = serializers.SerializerMethodField() + class Meta: model = Rpjmember fields = '__all__' + def get_rcertificates_(self, obj): + cs = Rpjcertificate.objects.filter(rpj_member=obj) + return cs.values('certificate', 'name', 'type', 'number', 'issue_date', 'expiration_date', 'review_date', 'file') + class RpjfileSerializer(CustomModelSerializer): file_cate_ = DictSimpleSerializer(source='file_cate', read_only=True) diff --git a/apps/rpm/views.py b/apps/rpm/views.py index a55f5404..44650cc6 100644 --- a/apps/rpm/views.py +++ b/apps/rpm/views.py @@ -155,7 +155,8 @@ class RpjmemberViewSet(CustomModelViewSet): create_serializer_class = RpjmemberCreateSerializer update_serializer_class = RpjmemberUpdateSerializer serializer_class = RpjmemberSerializer - select_related_fields = ['rpj'] + select_related_fields = ['remployee'] + prefetch_related_fields = ['rcertificates'] filterset_fields = ['rpj'] def destroy(self, request, *args, **kwargs):