From dc8bab86cfa97304a3169464b46c4624e1d70d28 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Fri, 1 Dec 2023 13:40:46 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20puorder=E5=A2=9E=E5=8A=A0materials?= =?UTF-8?q?=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/pum/migrations/0003_puorder_materials.py | 19 +++++++++++++++++++ apps/pum/models.py | 2 ++ apps/pum/serializers.py | 4 +++- 3 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 apps/pum/migrations/0003_puorder_materials.py diff --git a/apps/pum/migrations/0003_puorder_materials.py b/apps/pum/migrations/0003_puorder_materials.py new file mode 100644 index 00000000..52ece2f2 --- /dev/null +++ b/apps/pum/migrations/0003_puorder_materials.py @@ -0,0 +1,19 @@ +# Generated by Django 3.2.12 on 2023-12-01 05:36 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('mtm', '0025_auto_20231120_1139'), + ('pum', '0002_alter_puorderitem_material'), + ] + + operations = [ + migrations.AddField( + model_name='puorder', + name='materials', + field=models.ManyToManyField(blank=True, related_name='pu_order_materials', through='pum.PuOrderItem', to='mtm.Material', verbose_name='多个物料'), + ), + ] diff --git a/apps/pum/models.py b/apps/pum/models.py index 9eae5ccf..ec009c5c 100644 --- a/apps/pum/models.py +++ b/apps/pum/models.py @@ -58,6 +58,8 @@ class PuOrder(CommonBModel): Supplier, verbose_name='供应商', on_delete=models.CASCADE) delivery_date = models.DateField('截止到货日期', null=True, blank=True) submit_time = models.DateTimeField('提交时间', null=True, blank=True) + materials = models.ManyToManyField( + Material, verbose_name='多个物料', blank=True, through='pum.puorderitem', related_name='pu_order_materials') class PuOrderItem(BaseModel): diff --git a/apps/pum/serializers.py b/apps/pum/serializers.py index 57b5fa93..e6e62a3a 100644 --- a/apps/pum/serializers.py +++ b/apps/pum/serializers.py @@ -4,7 +4,7 @@ from apps.utils.constants import EXCLUDE_FIELDS_DEPT, EXCLUDE_FIELDS_BASE, EXCLU from rest_framework.exceptions import ValidationError from apps.pum.models import Supplier, PuPlan, PuPlanItem, PuOrder, PuOrderItem -from apps.mtm.serializers import MaterialSerializer +from apps.mtm.serializers import MaterialSerializer, MaterialSimpleSerializer class SupplierSerializer(CustomModelSerializer): @@ -83,6 +83,8 @@ class PuOrderSerializer(CustomModelSerializer): source='create_by.name', read_only=True) update_by_name = serializers.CharField( source='update_by.name', read_only=True) + materials_ = MaterialSimpleSerializer( + source='materials', many=True, read_only=True) class Meta: model = PuOrder