feat: 增加sam返回字段

This commit is contained in:
caoqianming 2023-10-18 16:29:06 +08:00
parent 93d0c43b05
commit c3afc248ab
3 changed files with 26 additions and 2 deletions

13
apps/sam/filters.py Normal file
View File

@ -0,0 +1,13 @@
from django_filters import rest_framework as filters
from apps.sam.models import OrderItem
class OrderItemFilter(filters.FilterSet):
class Meta:
model = OrderItem
fields = {
"order": ["exact", "in"],
"order__state": ["exact", "in"],
"mtask": ["exact", "isnull"]
}

View File

@ -14,6 +14,11 @@ class CustomerSerializer(CustomModelSerializer):
class ContractSerializer(CustomModelSerializer):
customer_name = serializers.CharField(
source='customer.name', read_only=True)
create_by_name = serializers.CharField(
source='create_by.name', read_only=True)
class Meta:
model = Contract
fields = '__all__'

View File

@ -11,6 +11,7 @@ from rest_framework import serializers
from rest_framework.exceptions import PermissionDenied
from django.utils import timezone
from rest_framework.response import Response
from .filters import OrderItemFilter
# Create your views here.
@ -38,7 +39,7 @@ class ContractViewSet(CustomModelViewSet):
"""
queryset = Contract.objects.all()
serializer_class = ContractSerializer
select_related_fields = ['customer']
select_related_fields = ['customer', 'create_by']
search_fields = ['name', 'number']
filterset_fields = ['customer']
@ -88,5 +89,10 @@ class OrderItemViewSet(ListModelMixin, CreateModelMixin, DestroyModelMixin, Cust
queryset = OrderItem.objects.all()
serializer_class = OrderItemSerializer
select_related_fields = ['order', 'material']
filterset_fields = ['order', 'material', 'mtask']
filterset_class = OrderItemFilter
ordering = ['create_time']
def perform_destroy(self, instance):
if instance.order.state != Order.ORDER_CREATE:
raise ParseError('该订单状态下不可删除')
return super().perform_destroy(instance)