sammodel表

This commit is contained in:
caoqianming 2021-09-09 14:39:35 +08:00
parent 17789ed4a2
commit 8e9fede047
3 changed files with 29 additions and 6 deletions

View File

@ -29,7 +29,7 @@ class Customer(CommonAModel):
def __str__(self): def __str__(self):
return self.name return self.name
class Contact(CommonAModel): class Contract(CommonAModel):
""" """
合同信息 合同信息
""" """
@ -54,7 +54,7 @@ class Order(CommonAModel):
""" """
number = models.CharField('订单编号', max_length=100) number = models.CharField('订单编号', max_length=100)
customer = models.ForeignKey(Customer, verbose_name='客户', on_delete=models.CASCADE) 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) product = models.ForeignKey(Material, verbose_name='所需产品', on_delete=models.CASCADE)
count = models.IntegerField('所需数量', default=0) count = models.IntegerField('所需数量', default=0)
delivery_date = models.DateField('交货日期') delivery_date = models.DateField('交货日期')

View File

@ -13,12 +13,17 @@ class CustomerCreateUpdateSerializer(serializers.ModelSerializer):
model = Customer model = Customer
fields = ['name', 'address', 'contact', 'contact_phone', 'description'] 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: class Meta:
model = Contact model = Contact
fields = '__all__' fields = '__all__'
class ContactCreateUpdateSerializer(serializers.ModelSerializer): class ContractCreateUpdateSerializer(serializers.ModelSerializer):
class Meta: class Meta:
model = Contact model = Contact
fields = ['name', 'number', 'amount', 'customer', 'sign_date', 'description'] fields = ['name', 'number', 'amount', 'customer', 'sign_date', 'description']

View File

@ -1,5 +1,5 @@
from apps.sam.serializers import CustomerCreateUpdateSerializer, CustomerSerializer from apps.sam.serializers import ContractCreateUpdateSerializer, ContractSerializer, CustomerCreateUpdateSerializer, CustomerSerializer
from apps.sam.models import Customer from apps.sam.models import Contract, Customer
from rest_framework.viewsets import ModelViewSet from rest_framework.viewsets import ModelViewSet
from apps.system.mixins import CreateUpdateCustomMixin from apps.system.mixins import CreateUpdateCustomMixin
from django.shortcuts import render from django.shortcuts import render
@ -21,3 +21,21 @@ class CustomerViewSet(CreateUpdateCustomMixin, ModelViewSet):
if self.action in ['create', 'update']: if self.action in ['create', 'update']:
return CustomerCreateUpdateSerializer return CustomerCreateUpdateSerializer
return CustomerSerializer 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