from django.shortcuts import render from rest_framework.viewsets import ModelViewSet from rest_framework.mixins import CreateModelMixin, DestroyModelMixin from rest_framework.viewsets import GenericViewSet from apps.pum.models import PuOrder, Vendor from apps.pum.serializers import PuOrderCreateUpdateSerializer, PuOrderSerializer, VendorSerializer from apps.system.mixins import CreateUpdateModelAMixin, OptimizationMixin # Create your views here. class VendorViewSet(CreateUpdateModelAMixin, ModelViewSet): """ 供应商-增删改查 """ perms_map = {'get': '*', 'post': 'vendor_create', 'put': 'vendor_update', 'delete': 'vendor_delete'} queryset = Vendor.objects.all() serializer_class = VendorSerializer search_fields = ['name', 'contact'] filterset_fields = [] ordering_fields = ['create_time'] ordering = ['-create_time'] class PuOrderViewSet(CreateUpdateModelAMixin, ModelViewSet): """ 采购订单-增删改查 """ perms_map = {'get': '*', 'post': '*', 'put': '*', 'delete': '*'} queryset = PuOrder.objects.select_related('vendor').\ prefetch_related('item_pu_order').all() serializer_class = PuOrderSerializer search_fields = ['number', 'vendor__name'] filterset_fields = ['vendor'] ordering = ['-create_time'] def get_serializer_class(self): if self.action in ['create', 'update']: return PuOrderCreateUpdateSerializer return super().get_serializer_class() class PuOrderItemViewSet(CreateModelMixin, DestroyModelMixin, GenericViewSet): pass