hberp/hb_server/apps/pum/views.py

47 lines
1.6 KiB
Python

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