province city url

This commit is contained in:
曹前明 2022-05-18 17:52:06 +08:00
parent 32c7d19c82
commit a48c4204a9
5 changed files with 36 additions and 9 deletions

View File

@ -86,6 +86,7 @@ class QActionViewSet(PageOrNot, ListModelMixin, DestroyModelMixin, RetrieveModel
perms_map = {'get': 'qtask_view'}
queryset = QAction.objects.select_related('file', 'atype', 'afield', 'qtask', 'belong_dept')
filterset_fields = ['qtask', 'belong_dept', 'atype', 'afield']
serializer_class = QActionListSerializer
def get_serializer_class(self):
if self.action == 'list':
@ -143,6 +144,7 @@ class QActionViewSet(PageOrNot, ListModelMixin, DestroyModelMixin, RetrieveModel
serializer.save(create_by=user, belong_dept=user.dept)
vdata = serializer.validated_data
cal_count(vdata['qtask'], user.dept)
# 更新资质库
return Response()
@action(methods=['post'], detail=False,

View File

@ -2,7 +2,7 @@ import re
from rest_framework import serializers
from .models import Organization, Permission, Role, User, Position, DictType, Dict, File
from .models import City, Organization, Permission, Province, Role, User, Position, DictType, Dict, File
class FileSerializer(serializers.ModelSerializer):
@ -153,3 +153,15 @@ class FileSimpleSerializer(serializers.ModelSerializer):
class Meta:
model = File
fields = ['id', 'name', 'path', 'file']
class ProvinceSerializer(serializers.ModelSerializer):
class Meta:
model = Province
fields = '__all__'
class CitySerializer(serializers.ModelSerializer):
class Meta:
model = City
fields = '__all__'

View File

@ -1,5 +1,6 @@
from django.urls import path, include
from .views import UserViewSet, OrganizationViewSet, PermissionViewSet, RoleViewSet, PositionViewSet, TestView, DictTypeViewSet, DictViewSet, sendMsg
from .views import CityViewSet, ProviceViewSet, UserViewSet, OrganizationViewSet, PermissionViewSet, RoleViewSet, PositionViewSet, TestView, DictTypeViewSet, DictViewSet, sendMsg
from rest_framework import routers
@ -11,6 +12,8 @@ router.register('role', RoleViewSet, basename="role")
router.register('position', PositionViewSet, basename="position")
router.register('dicttype', DictTypeViewSet, basename="dicttype")
router.register('dict', DictViewSet, basename="dict")
router.register('province', ProviceViewSet, basename="province")
router.register('city', CityViewSet, basename="city")
urlpatterns = [
path('', include(router.urls)),
path('sendmsg/', sendMsg.as_view()),

View File

@ -27,13 +27,13 @@ from utils.pagination import PageOrNot
from utils.queryset import get_child_queryset2
from .filters import UserFilter
from .models import (Dict, DictType, File, Message, Organization, Permission,
Position, Role, User, UserThird)
from .models import (City, Dict, DictType, File, Message, Organization, Permission,
Position, Province, Role, User, UserThird)
from .permission import RbacPermission, get_permission_list
from .permission_data import RbacFilterSet
from .serializers import (DictSerializer, DictTypeSerializer, FileSerializer,
from .serializers import (CitySerializer, DictSerializer, DictTypeSerializer, FileSerializer,
OrganizationSerializer, PermissionSerializer,
PositionSerializer, RoleSerializer,
PositionSerializer, ProvinceSerializer, RoleSerializer,
UserCreateSerializer, UserListSerializer,
UserModifySerializer)
import requests
@ -385,9 +385,19 @@ class WXMPlogin(APIView):
class ProviceViewSet(PageOrNot, ListModelMixin, GenericViewSet):
queryset = Province.objects.all()
serializer_class = ProvinceSerializer
ordering = 'id'
class CityViewSet(PageOrNot, ListModelMixin, GenericViewSet):
queryset = City.objects.all()
serializer_class = CitySerializer
ordeing = 'id'
class FileViewSet(ModelViewSet):
"""
文件增删改查

View File

@ -10,8 +10,8 @@ class PageOrNot:
def paginate_queryset(self, queryset):
if (self.paginator is None):
return None
elif self.request.query_params.get('pageoff', None) and queryset.count()<500:
elif (self.request.query_params.get('pageoff', None) or self.request.query_params.get('page', 0)) and queryset.count()<500:
return None
elif self.request.query_params.get('pageoff', None) and queryset.count()>=500:
elif (self.request.query_params.get('pageoff', None) or self.request.query_params.get('page', 0)) and queryset.count()>=500:
raise ParseError('单次请求数据量大,请求中止')
return self.paginator.paginate_queryset(queryset, self.request, view=self)