From f54906b32871c5c9eaac95d34ec13261483682d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E5=89=8D=E6=98=8E?= <909355014@qq.com> Date: Mon, 6 Jun 2022 13:42:42 +0800 Subject: [PATCH] =?UTF-8?q?quali=E5=A2=9E=E5=8A=A0file=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ability/migrations/0034_quali_file.py | 20 +++++++++++++++++++ server/apps/ability/models.py | 2 ++ server/apps/ability/serializers_qtask.py | 11 +++++++--- server/apps/ability/views_qtask.py | 2 +- 4 files changed, 31 insertions(+), 4 deletions(-) create mode 100644 server/apps/ability/migrations/0034_quali_file.py diff --git a/server/apps/ability/migrations/0034_quali_file.py b/server/apps/ability/migrations/0034_quali_file.py new file mode 100644 index 0000000..607f617 --- /dev/null +++ b/server/apps/ability/migrations/0034_quali_file.py @@ -0,0 +1,20 @@ +# Generated by Django 3.0.5 on 2022-06-06 05:40 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('system', '0021_auto_20220530_1520'), + ('ability', '0033_auto_20220606_1323'), + ] + + operations = [ + migrations.AddField( + model_name='quali', + name='file', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='system.File', verbose_name='关联文件'), + ), + ] diff --git a/server/apps/ability/models.py b/server/apps/ability/models.py index ba9fd8a..432b6ad 100644 --- a/server/apps/ability/models.py +++ b/server/apps/ability/models.py @@ -158,6 +158,8 @@ class Quali(CommonAModel): qualilib = models.ForeignKey(QualiLib, verbose_name='关联资质库', null=True, blank=True, on_delete=models.SET_NULL) end_date = models.DateField('截至日期', null=True, blank=True) + file = models.ForeignKey(File, null=True, blank=True, verbose_name='关联文件', on_delete=models.CASCADE) + class QTask(CommonBModel): diff --git a/server/apps/ability/serializers_qtask.py b/server/apps/ability/serializers_qtask.py index a984138..35832ae 100644 --- a/server/apps/ability/serializers_qtask.py +++ b/server/apps/ability/serializers_qtask.py @@ -1,6 +1,6 @@ from rest_framework import serializers -from apps.system.models import City, Organization, Province +from apps.system.models import City, File, Organization, Province from .models import QAction, QActionItem, QOrg, QTask, Quali, QualiLib from django.db import transaction from apps.system.serializers import CitySerializer, FileSimpleSerializer, OrganizationSimpleSerializer, DictSerializer, UserSimpleSerializer @@ -17,6 +17,7 @@ class QualiListSerializer(serializers.ModelSerializer): city_name = serializers.CharField(source='city.name', read_only=True) org_ = OrganizationSimpleSerializer(source='org', read_only=True) citys_ = CitySerializer(source='citys', many=True, read_only=True) + file_ = FileSimpleSerializer(source='file', read_only=True) class Meta: model = Quali fields = '__all__' @@ -99,7 +100,7 @@ class QualiCreateSerializer(serializers.ModelSerializer): citys = serializers.ListField(child=serializers.IntegerField(), label='城市ID列表') class Meta: model = Quali - fields = ['name', 'type', 'grade', 'scope', 'level', 'province', 'city', 'description', 'citys'] + fields = ['name', 'type', 'grade', 'scope', 'level', 'province', 'city', 'description', 'citys', 'file'] class QualiUpdateSerializer(serializers.ModelSerializer): @@ -107,7 +108,7 @@ class QualiUpdateSerializer(serializers.ModelSerializer): id = serializers.IntegerField(label='修改资质的ID') class Meta: model = Quali - fields = ['scope', 'level', 'description', 'id', 'citys'] + fields = ['scope', 'level', 'description', 'id', 'citys', 'file'] class QualiSerializer(serializers.ModelSerializer): class Meta: @@ -129,6 +130,8 @@ class QActionQualiCreateSerializer(serializers.ModelSerializer): value2['province'] = value2['province'].id if value2['city']: value2['city'] = value2['city'].id + if value2['file']: + value2['file'] = value2['file'].id return super().create(validated_data) class QActionQualiUpdateSerializer(serializers.ModelSerializer): @@ -174,4 +177,6 @@ class QActionDetailSerializer(serializers.ModelSerializer): value2['city_name'] = City.objects.get(id=value2['city']).name if value2.get('citys', None): value2['citys_'] = CitySerializer(instance=City.objects.filter(id__in=value2['citys']), many=True).data + if value2.get('file', None): + value2['file_'] = FileSimpleSerializer(instance=File.objects.get(id=value2['file'])).data return value2 \ No newline at end of file diff --git a/server/apps/ability/views_qtask.py b/server/apps/ability/views_qtask.py index 56d5966..605218b 100644 --- a/server/apps/ability/views_qtask.py +++ b/server/apps/ability/views_qtask.py @@ -22,7 +22,7 @@ class QualiLibViewSet(PageOrNot, ListModelMixin, GenericViewSet): class QualiViewSet(ListModelMixin, RetrieveModelMixin, GenericViewSet): perms_map = {'get': '*'} - queryset = Quali.objects.select_related('org', 'province', 'city').prefetch_related('citys') + queryset = Quali.objects.select_related('org', 'province', 'city', 'file').prefetch_related('citys') serializer_class = QualiListSerializer search_fields = ['name', 'type', 'grade', 'scope', 'level', 'description'] ordering = ['org', 'org__sort', 'create_time']