diff --git a/apps/pum/views.py b/apps/pum/views.py index 140a4f95..b7f50bac 100644 --- a/apps/pum/views.py +++ b/apps/pum/views.py @@ -101,7 +101,7 @@ class PuOrderViewSet(CustomModelViewSet): queryset = PuOrder.objects.all() serializer_class = PuOrderSerializer filterset_class = PuOrderFilter - search_fields = ['number', 'supplier__name'] + search_fields = ['number', 'supplier__name', 'item_puorder__material__name', 'item_puorder__material__specification', 'item_puorder__material__model'] select_related_fields = ['create_by', 'update_by', 'supplier'] @transaction.atomic diff --git a/apps/sam/migrations/0008_alter_orderitem_order.py b/apps/sam/migrations/0008_alter_orderitem_order.py new file mode 100644 index 00000000..c69380f3 --- /dev/null +++ b/apps/sam/migrations/0008_alter_orderitem_order.py @@ -0,0 +1,19 @@ +# Generated by Django 3.2.12 on 2024-08-06 04:18 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('sam', '0007_alter_orderitem_material'), + ] + + operations = [ + migrations.AlterField( + model_name='orderitem', + name='order', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='item_order', to='sam.order', verbose_name='关联订单'), + ), + ] diff --git a/apps/sam/models.py b/apps/sam/models.py index 5b6f6fe1..0a7920fb 100644 --- a/apps/sam/models.py +++ b/apps/sam/models.py @@ -80,7 +80,7 @@ class OrderItem(BaseModel): 订单明细 """ order = models.ForeignKey( - Order, verbose_name='关联订单', on_delete=models.CASCADE) + Order, verbose_name='关联订单', on_delete=models.CASCADE, related_name='item_order') material = models.ForeignKey( Material, verbose_name='所需产品', on_delete=models.CASCADE, related_name='orderitem_material') count = models.PositiveIntegerField('所需数量', default=1) diff --git a/apps/sam/views.py b/apps/sam/views.py index 5744f0f1..07658ecd 100644 --- a/apps/sam/views.py +++ b/apps/sam/views.py @@ -57,7 +57,8 @@ class OrderViewSet(CustomModelViewSet): queryset = Order.objects.all() serializer_class = OrderSerializer select_related_fields = ['contract', 'customer'] - search_fields = ['number'] + search_fields = ['number', 'contract__name', 'contract__number', 'customer__name', 'orderitem_order__material__name', + 'orderitem_order__material__specification', 'orderitem_order__material__model'] filterset_fields = { "contract": ["exact"], "customer": ["exact"],