From 8e9fede047cb87a2e48a56bca0f824330863b676 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Thu, 9 Sep 2021 14:39:35 +0800 Subject: [PATCH] =?UTF-8?q?sammodel=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hb_server/apps/sam/models.py | 4 ++-- hb_server/apps/sam/serializers.py | 9 +++++++-- hb_server/apps/sam/views.py | 22 ++++++++++++++++++++-- 3 files changed, 29 insertions(+), 6 deletions(-) diff --git a/hb_server/apps/sam/models.py b/hb_server/apps/sam/models.py index 904101f..977621f 100644 --- a/hb_server/apps/sam/models.py +++ b/hb_server/apps/sam/models.py @@ -29,7 +29,7 @@ class Customer(CommonAModel): def __str__(self): return self.name -class Contact(CommonAModel): +class Contract(CommonAModel): """ 合同信息 """ @@ -54,7 +54,7 @@ class Order(CommonAModel): """ number = models.CharField('订单编号', max_length=100) customer = models.ForeignKey(Customer, verbose_name='客户', on_delete=models.CASCADE) - contact = models.ForeignKey(Contact, verbose_name='所属合同', null=True, blank=True, on_delete=models.SET_NULL) + contract = models.ForeignKey(Contract, verbose_name='所属合同', null=True, blank=True, on_delete=models.SET_NULL) product = models.ForeignKey(Material, verbose_name='所需产品', on_delete=models.CASCADE) count = models.IntegerField('所需数量', default=0) delivery_date = models.DateField('交货日期') diff --git a/hb_server/apps/sam/serializers.py b/hb_server/apps/sam/serializers.py index 50d8845..5e9bb74 100644 --- a/hb_server/apps/sam/serializers.py +++ b/hb_server/apps/sam/serializers.py @@ -13,12 +13,17 @@ class CustomerCreateUpdateSerializer(serializers.ModelSerializer): model = Customer fields = ['name', 'address', 'contact', 'contact_phone', 'description'] -class ContactSerializer(serializers.ModelSerializer): +class CustomerSimpleSerializer(serializers.ModelSerializer): + class Meta: + fields = ['id', 'name'] + +class ContractSerializer(serializers.ModelSerializer): + class Meta: model = Contact fields = '__all__' -class ContactCreateUpdateSerializer(serializers.ModelSerializer): +class ContractCreateUpdateSerializer(serializers.ModelSerializer): class Meta: model = Contact fields = ['name', 'number', 'amount', 'customer', 'sign_date', 'description'] \ No newline at end of file diff --git a/hb_server/apps/sam/views.py b/hb_server/apps/sam/views.py index 7164c7f..d85c19f 100644 --- a/hb_server/apps/sam/views.py +++ b/hb_server/apps/sam/views.py @@ -1,5 +1,5 @@ -from apps.sam.serializers import CustomerCreateUpdateSerializer, CustomerSerializer -from apps.sam.models import Customer +from apps.sam.serializers import ContractCreateUpdateSerializer, ContractSerializer, CustomerCreateUpdateSerializer, CustomerSerializer +from apps.sam.models import Contract, Customer from rest_framework.viewsets import ModelViewSet from apps.system.mixins import CreateUpdateCustomMixin from django.shortcuts import render @@ -21,3 +21,21 @@ class CustomerViewSet(CreateUpdateCustomMixin, ModelViewSet): if self.action in ['create', 'update']: return CustomerCreateUpdateSerializer return CustomerSerializer + + +class ContractViewSet(CreateUpdateCustomMixin, ModelViewSet): + """ + 合同-增删改查 + """ + perms_map = {'*': '*'} + queryset = Contract.objects.select_related('customer').all() + serializer_class = ContractSerializer + search_fields = ['name'] + filterset_fields = [] + ordering_fields = ['create_time'] + ordering = ['-create_time'] + + def get_serializer_class(self): + if self.action in ['create', 'update']: + return ContractCreateUpdateSerializer + return ContractSerializer \ No newline at end of file