From 2c0d4dda3243109fa031bde1a8e95fb1c1b6aaa8 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Wed, 27 Apr 2022 10:37:37 +0800 Subject: [PATCH] =?UTF-8?q?material=20=E5=A2=9E=E5=8A=A0file=E5=AD=97?= =?UTF-8?q?=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../apps/mtm/migrations/0051_material_file.py | 20 +++++++++++++++++++ hb_server/apps/mtm/models.py | 1 + hb_server/apps/mtm/serializers.py | 2 ++ hb_server/apps/mtm/views.py | 2 +- 4 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 hb_server/apps/mtm/migrations/0051_material_file.py diff --git a/hb_server/apps/mtm/migrations/0051_material_file.py b/hb_server/apps/mtm/migrations/0051_material_file.py new file mode 100644 index 0000000..027f417 --- /dev/null +++ b/hb_server/apps/mtm/migrations/0051_material_file.py @@ -0,0 +1,20 @@ +# Generated by Django 3.2.9 on 2022-04-27 02:36 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('system', '0004_auto_20220318_1705'), + ('mtm', '0050_auto_20220419_1109'), + ] + + operations = [ + migrations.AddField( + model_name='material', + name='file', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='system.file', verbose_name='文件'), + ), + ] diff --git a/hb_server/apps/mtm/models.py b/hb_server/apps/mtm/models.py index d54c93a..9266ff6 100644 --- a/hb_server/apps/mtm/models.py +++ b/hb_server/apps/mtm/models.py @@ -43,6 +43,7 @@ class Material(CommonAModel): count = models.PositiveIntegerField('物料库存总数', default=0) count_safe = models.PositiveIntegerField('安全库存总数', null=True, blank=True) piece_count = models.PositiveSmallIntegerField('单片玻璃数量', null=True, blank=True) + file = models.ForeignKey(File, verbose_name='文件', on_delete=models.SET_NULL, null=True, blank=True) class Meta: verbose_name = '物料表' verbose_name_plural = verbose_name diff --git a/hb_server/apps/mtm/serializers.py b/hb_server/apps/mtm/serializers.py index e0afabb..ad6c0e1 100644 --- a/hb_server/apps/mtm/serializers.py +++ b/hb_server/apps/mtm/serializers.py @@ -8,12 +8,14 @@ from apps.system.serializers import FileSimpleSerializer, OrganizationSimpleSeri class MaterialSerializer(DynamicFieldsSerializerMixin, serializers.ModelSerializer): + file_ = FileSimpleSerializer(source='file', read_only=True) class Meta: model = Material fields = '__all__' class MaterialDetailSerializer(serializers.ModelSerializer): processes_ = serializers.SerializerMethodField() + file_ = FileSimpleSerializer(source='file', read_only=True) class Meta: model = Material fields = '__all__' diff --git a/hb_server/apps/mtm/views.py b/hb_server/apps/mtm/views.py index 9318c36..d6b9d8c 100644 --- a/hb_server/apps/mtm/views.py +++ b/hb_server/apps/mtm/views.py @@ -19,7 +19,7 @@ class MaterialViewSet(PageOrNot, CreateUpdateModelAMixin, ModelViewSet): """ perms_map = {'get': '*', 'post': 'material_create', 'put': 'material_update', 'delete': 'material_delete'} - queryset = Material.objects.all() + queryset = Material.objects.select_related('file').all() serializer_class = MaterialSerializer search_fields = ['name', 'number'] filterset_class = MaterialFilterSet