quali增加file字段

This commit is contained in:
曹前明 2022-06-06 13:42:42 +08:00
parent d06c86cd80
commit f54906b328
4 changed files with 31 additions and 4 deletions

View File

@ -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='关联文件'),
),
]

View File

@ -158,6 +158,8 @@ class Quali(CommonAModel):
qualilib = models.ForeignKey(QualiLib, verbose_name='关联资质库', qualilib = models.ForeignKey(QualiLib, verbose_name='关联资质库',
null=True, blank=True, on_delete=models.SET_NULL) null=True, blank=True, on_delete=models.SET_NULL)
end_date = models.DateField('截至日期', null=True, blank=True) 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): class QTask(CommonBModel):

View File

@ -1,6 +1,6 @@
from rest_framework import serializers 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 .models import QAction, QActionItem, QOrg, QTask, Quali, QualiLib
from django.db import transaction from django.db import transaction
from apps.system.serializers import CitySerializer, FileSimpleSerializer, OrganizationSimpleSerializer, DictSerializer, UserSimpleSerializer 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) city_name = serializers.CharField(source='city.name', read_only=True)
org_ = OrganizationSimpleSerializer(source='org', read_only=True) org_ = OrganizationSimpleSerializer(source='org', read_only=True)
citys_ = CitySerializer(source='citys', many=True, read_only=True) citys_ = CitySerializer(source='citys', many=True, read_only=True)
file_ = FileSimpleSerializer(source='file', read_only=True)
class Meta: class Meta:
model = Quali model = Quali
fields = '__all__' fields = '__all__'
@ -99,7 +100,7 @@ class QualiCreateSerializer(serializers.ModelSerializer):
citys = serializers.ListField(child=serializers.IntegerField(), label='城市ID列表') citys = serializers.ListField(child=serializers.IntegerField(), label='城市ID列表')
class Meta: class Meta:
model = Quali 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): class QualiUpdateSerializer(serializers.ModelSerializer):
@ -107,7 +108,7 @@ class QualiUpdateSerializer(serializers.ModelSerializer):
id = serializers.IntegerField(label='修改资质的ID') id = serializers.IntegerField(label='修改资质的ID')
class Meta: class Meta:
model = Quali model = Quali
fields = ['scope', 'level', 'description', 'id', 'citys'] fields = ['scope', 'level', 'description', 'id', 'citys', 'file']
class QualiSerializer(serializers.ModelSerializer): class QualiSerializer(serializers.ModelSerializer):
class Meta: class Meta:
@ -129,6 +130,8 @@ class QActionQualiCreateSerializer(serializers.ModelSerializer):
value2['province'] = value2['province'].id value2['province'] = value2['province'].id
if value2['city']: if value2['city']:
value2['city'] = value2['city'].id value2['city'] = value2['city'].id
if value2['file']:
value2['file'] = value2['file'].id
return super().create(validated_data) return super().create(validated_data)
class QActionQualiUpdateSerializer(serializers.ModelSerializer): class QActionQualiUpdateSerializer(serializers.ModelSerializer):
@ -174,4 +177,6 @@ class QActionDetailSerializer(serializers.ModelSerializer):
value2['city_name'] = City.objects.get(id=value2['city']).name value2['city_name'] = City.objects.get(id=value2['city']).name
if value2.get('citys', None): if value2.get('citys', None):
value2['citys_'] = CitySerializer(instance=City.objects.filter(id__in=value2['citys']), many=True).data 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 return value2

View File

@ -22,7 +22,7 @@ class QualiLibViewSet(PageOrNot, ListModelMixin, GenericViewSet):
class QualiViewSet(ListModelMixin, RetrieveModelMixin, GenericViewSet): class QualiViewSet(ListModelMixin, RetrieveModelMixin, GenericViewSet):
perms_map = {'get': '*'} 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 serializer_class = QualiListSerializer
search_fields = ['name', 'type', 'grade', 'scope', 'level', 'description'] search_fields = ['name', 'type', 'grade', 'scope', 'level', 'description']
ordering = ['org', 'org__sort', 'create_time'] ordering = ['org', 'org__sort', 'create_time']