From a48c4204a9fea80cdffe32b7d4af0c4420697107 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E5=89=8D=E6=98=8E?= <909355014@qq.com> Date: Wed, 18 May 2022 17:52:06 +0800 Subject: [PATCH] province city url --- server/apps/ability/views_qtask.py | 2 ++ server/apps/system/serializers.py | 16 ++++++++++++++-- server/apps/system/urls.py | 5 ++++- server/apps/system/views.py | 18 ++++++++++++++---- server/utils/pagination.py | 4 ++-- 5 files changed, 36 insertions(+), 9 deletions(-) diff --git a/server/apps/ability/views_qtask.py b/server/apps/ability/views_qtask.py index 036ca9a..9db18a0 100644 --- a/server/apps/ability/views_qtask.py +++ b/server/apps/ability/views_qtask.py @@ -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, diff --git a/server/apps/system/serializers.py b/server/apps/system/serializers.py index 888c9ae..b5170cb 100644 --- a/server/apps/system/serializers.py +++ b/server/apps/system/serializers.py @@ -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): @@ -152,4 +152,16 @@ class OrganizationSimpleSerializer(serializers.ModelSerializer): class FileSimpleSerializer(serializers.ModelSerializer): class Meta: model = File - fields = ['id', 'name', 'path', 'file'] \ No newline at end of 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__' \ No newline at end of file diff --git a/server/apps/system/urls.py b/server/apps/system/urls.py index 225b722..44fd8b0 100644 --- a/server/apps/system/urls.py +++ b/server/apps/system/urls.py @@ -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()), diff --git a/server/apps/system/views.py b/server/apps/system/views.py index a0b353d..8eabccd 100644 --- a/server/apps/system/views.py +++ b/server/apps/system/views.py @@ -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): """ 文件:增删改查 diff --git a/server/utils/pagination.py b/server/utils/pagination.py index 8f18c67..9f02412 100644 --- a/server/utils/pagination.py +++ b/server/utils/pagination.py @@ -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) \ No newline at end of file