from django.shortcuts import render from rest_framework.viewsets import ModelViewSet from .models import Enterprise from utils.queryset import get_child_queryset2 from .serializers import EnterpriseSerializer,EnterpriseListSerializer from apps.system.permission_data import RbacFilterSet # Create your views here. class EnterpriseViewSet(RbacFilterSet, ModelViewSet): perms_map = {'get': '*', 'post': 'Enterprise_create', 'put': 'Enterprise_update', 'delete': 'Enterprise_delete'} queryset = Enterprise.objects serializer_class = EnterpriseSerializer search_fields = ['name','query_code', 'code'] ordering = ['-create_time'] def get_serializer_class(self): # 根据请求类型动态变更serializer if self.action == 'list': return EnterpriseListSerializer return EnterpriseSerializer def get_queryset(self): queryset = self.queryset if hasattr(self.get_serializer_class(), 'setup_eager_loading'): queryset = self.get_serializer_class().setup_eager_loading(queryset) # 性能优化 return queryset