后端代码架构整理

pull/2/head
李强 2021-03-13 18:06:47 +08:00
parent ee9e81f47b
commit 96acc19399
258 changed files with 614 additions and 27807 deletions

View File

@ -45,9 +45,9 @@ INSTALLED_APPS = [
'corsheaders', 'corsheaders',
'captcha', 'captcha',
# 自定义app # 自定义app
'apps.permission', 'apps.vadmin.permission',
'apps.op_drf', 'apps.vadmin.op_drf',
'apps.system', 'apps.vadmin.system',
] ]
MIDDLEWARE = [ MIDDLEWARE = [
@ -131,7 +131,8 @@ STATIC_URL = '/static/'
# STATIC_ROOT=os.path.join(BASE_DIR,'static') # STATIC_ROOT=os.path.join(BASE_DIR,'static')
# # 设置django的静态文件目录 # # 设置django的静态文件目录
STATICFILES_DIRS = [ STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static") os.path.join(BASE_DIR, "static"),
os.path.join(BASE_DIR, "apps", "vadmin", "static")
] ]
# 访问上传文件的url地址前缀 # 访问上传文件的url地址前缀
MEDIA_URL = "/media/" MEDIA_URL = "/media/"
@ -250,9 +251,9 @@ JWT_AUTH = {
'JWT_AUTH_HEADER_PREFIX': 'Bearer', # JWT的Header认证头以'JWT '开始 'JWT_AUTH_HEADER_PREFIX': 'Bearer', # JWT的Header认证头以'JWT '开始
'JWT_AUTH_COOKIE': 'AUTH_JWT', 'JWT_AUTH_COOKIE': 'AUTH_JWT',
'JWT_VERIFY_EXPIRATION': True, 'JWT_VERIFY_EXPIRATION': True,
'JWT_PAYLOAD_HANDLER': 'utils.jwt_util.jwt_payload_handler', 'JWT_PAYLOAD_HANDLER': 'apps.vadmin.utils.jwt_util.jwt_payload_handler',
'JWT_GET_USER_SECRET_KEY': 'utils.jwt_util.jwt_get_user_secret_key', 'JWT_GET_USER_SECRET_KEY': 'apps.vadmin.utils.jwt_util.jwt_get_user_secret_key',
'JWT_RESPONSE_PAYLOAD_HANDLER': 'utils.jwt_util.jwt_response_payload_handler', 'JWT_RESPONSE_PAYLOAD_HANDLER': 'apps.vadmin.utils.jwt_util.jwt_response_payload_handler',
} }
# ================================================= # # ================================================= #
@ -264,7 +265,7 @@ REST_FRAMEWORK = {
), ),
'DEFAULT_AUTHENTICATION_CLASSES': ( 'DEFAULT_AUTHENTICATION_CLASSES': (
'utils.authentication.RedisOpAuthJwtAuthentication', 'apps.vadmin.utils.authentication.RedisOpAuthJwtAuthentication',
# 'rest_framework_jwt.authentication.JSONWebTokenAuthentication', # 'rest_framework_jwt.authentication.JSONWebTokenAuthentication',
'rest_framework.authentication.BasicAuthentication', 'rest_framework.authentication.BasicAuthentication',
'rest_framework.authentication.SessionAuthentication', 'rest_framework.authentication.SessionAuthentication',
@ -274,14 +275,14 @@ REST_FRAMEWORK = {
'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.AutoSchema', 'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.AutoSchema',
'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination', 'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',
'DEFAULT_FILTER_BACKENDS': ('django_filters.rest_framework.DjangoFilterBackend',), 'DEFAULT_FILTER_BACKENDS': ('django_filters.rest_framework.DjangoFilterBackend',),
'EXCEPTION_HANDLER': 'utils.exceptions.op_exception_handler', 'EXCEPTION_HANDLER': 'apps.vadmin.utils.exceptions.op_exception_handler',
} }
# ================================================= # # ================================================= #
# ************** 登录方式配置 ************** # # ************** 登录方式配置 ************** #
# ================================================= # # ================================================= #
AUTHENTICATION_BACKENDS = ( AUTHENTICATION_BACKENDS = (
'utils.backends.CustomBackend', 'apps.vadmin.utils.backends.CustomBackend',
'utils.backends.SessionAuthentication', 'apps.vadmin.utils.backends.SessionAuthentication',
) )
AUTH_USER_MODEL = 'permission.UserProfile' AUTH_USER_MODEL = 'permission.UserProfile'
# username_field # username_field

View File

@ -18,16 +18,11 @@ from captcha.conf import settings as ca_settings
from captcha.helpers import captcha_image_url, captcha_audio_url from captcha.helpers import captcha_image_url, captcha_audio_url
from captcha.models import CaptchaStore from captcha.models import CaptchaStore
from django.conf import settings from django.conf import settings
from django.conf.urls import url
from django.contrib import admin
from django.urls import re_path, include from django.urls import re_path, include
from django.views.static import serve from django.views.static import serve
from rest_framework.documentation import include_docs_urls
from rest_framework.views import APIView from rest_framework.views import APIView
from apps.permission.views import GetUserProfileView, GetRouters from apps.vadmin.op_drf.response import SuccessResponse
from apps.op_drf.response import SuccessResponse
from utils.login import LoginView, LogoutView
class CaptchaRefresh(APIView): class CaptchaRefresh(APIView):
@ -45,18 +40,6 @@ class CaptchaRefresh(APIView):
urlpatterns = [ urlpatterns = [
re_path('api-token-auth/', LoginView.as_view(), name='api_token_auth'),
re_path(r'^admin/', admin.site.urls),
url(r'docs/', include_docs_urls(title='接口文档')),
re_path(r'^permission/', include('apps.permission.urls')),
re_path(r'^system/', include('apps.system.urls')),
re_path(r'media/(?P<path>.*)', serve, {"document_root": settings.MEDIA_ROOT}), re_path(r'media/(?P<path>.*)', serve, {"document_root": settings.MEDIA_ROOT}),
re_path(r'^login/$', LoginView.as_view()), re_path(r'^admin/', include('apps.vadmin.urls')),
re_path(r'^logout/$', LogoutView.as_view()),
re_path(r'^getInfo/$', GetUserProfileView.as_view()),
re_path(r'^getRouters/$', GetRouters.as_view()),
url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')),
url(r"captcha/refresh/$", CaptchaRefresh.as_view(), name="captcha-refresh"), # 刷新验证码
re_path('captcha/', include('captcha.urls')), # 图片验证码 路由
] ]

View File

@ -6,7 +6,7 @@ logger = logging.getLogger(__name__)
class OpDrfConfig(AppConfig): class OpDrfConfig(AppConfig):
name = 'op_drf' name = 'vadmin.op_drf'
verbose_name = "OP DRF" verbose_name = "OP DRF"
def ready(self): def ready(self):

View File

@ -2,7 +2,7 @@ from django.contrib.auth import get_user_model
from django.db import models from django.db import models
from django.db.models import SET_NULL from django.db.models import SET_NULL
from utils.string_util import uuid_8, uuid_16, uuid_32, uuid_36 from ...vadmin.utils.string_util import uuid_8, uuid_16, uuid_32, uuid_36
class IdField(models.CharField): class IdField(models.CharField):

View File

@ -11,7 +11,7 @@ from django.utils import six
from mongoengine.queryset import visitor from mongoengine.queryset import visitor
from rest_framework.filters import BaseFilterBackend, SearchFilter, OrderingFilter from rest_framework.filters import BaseFilterBackend, SearchFilter, OrderingFilter
from apps.permission.models import Dept from ..permission.models import Dept
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)

View File

@ -7,8 +7,8 @@ from rest_framework.settings import api_settings
from . import mixins from . import mixins
from .pagination import Pagination, JsonPagination from .pagination import Pagination, JsonPagination
from .response import SuccessResponse from .response import SuccessResponse
from utils.jsonpath_util import get_jsonpath, filter_json, search_json from ..utils.jsonpath_util import get_jsonpath, filter_json, search_json
from utils.sort_util import sortList from ..utils.sort_util import sortList
from .views import CustomAPIView from .views import CustomAPIView

View File

@ -8,8 +8,8 @@ from django.utils.deprecation import MiddlewareMixin
from mongoengine import DynamicDocument, StringField, IntField, DictField, DateTimeField from mongoengine import DynamicDocument, StringField, IntField, DictField, DateTimeField
from rest_framework_mongoengine.serializers import DocumentSerializer from rest_framework_mongoengine.serializers import DocumentSerializer
import logging import logging
from utils.decorators import exceptionHandler from ..utils.decorators import exceptionHandler
from utils.request_util import get_request_ip, get_request_data, get_request_path from ..utils.request_util import get_request_ip, get_request_data, get_request_path
from .viewsets import CustomMongoModelViewSet from .viewsets import CustomMongoModelViewSet
from django.conf import settings from django.conf import settings
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)

View File

@ -6,8 +6,8 @@ from rest_framework.exceptions import APIException as DRFAPIException
from rest_framework.request import Request from rest_framework.request import Request
from rest_framework.views import APIView from rest_framework.views import APIView
from utils import exceptions from ..utils import exceptions
from utils.model_util import ModelRelateUtils from ..utils.model_util import ModelRelateUtils
from .logging.view_logger import CustomerRelationshipViewLogger from .logging.view_logger import CustomerRelationshipViewLogger
from .response import SuccessResponse, ErrorResponse from .response import SuccessResponse, ErrorResponse
from .serializers import CustomModelSerializer from .serializers import CustomModelSerializer

View File

@ -11,7 +11,7 @@ from rest_framework.request import Request
from rest_framework.settings import api_settings from rest_framework.settings import api_settings
from rest_framework.viewsets import ViewSetMixin from rest_framework.viewsets import ViewSetMixin
from utils.exceptions import APIException from ..utils.exceptions import APIException
from . import mixins from . import mixins
from .filters import MongoSearchFilter, MongoOrderingFilter, AdvancedSearchFilter, MongoAdvancedSearchFilter from .filters import MongoSearchFilter, MongoOrderingFilter, AdvancedSearchFilter, MongoAdvancedSearchFilter
from .generics import GenericAPIView from .generics import GenericAPIView

View File

@ -2,5 +2,5 @@ from django.apps import AppConfig
class PermissionConfig(AppConfig): class PermissionConfig(AppConfig):
name = 'permission' name = 'vadmin.permission'
verbose_name = "权限管理" verbose_name = "权限管理"

View File

@ -1,6 +1,6 @@
import django_filters import django_filters
from apps.permission.models import Menu, Dept, Post, Role, UserProfile from ..permission.models import Menu, Dept, Post, Role, UserProfile
class MenuFilter(django_filters.rest_framework.FilterSet): class MenuFilter(django_filters.rest_framework.FilterSet):

View File

@ -4,7 +4,7 @@ import os
from django.core.management.base import BaseCommand from django.core.management.base import BaseCommand
from django.db import connection from django.db import connection
from scripts import getSql from ....scripts import getSql
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)

View File

@ -0,0 +1,173 @@
# Generated by Django 2.2.16 on 2021-03-13 07:50
import apps.vadmin.op_drf.fields
from django.conf import settings
import django.contrib.auth.models
from django.db import migrations, models
import django.db.models.deletion
import django.utils.timezone
import uuid
class Migration(migrations.Migration):
initial = True
dependencies = [
('auth', '0011_update_proxy_permissions'),
]
operations = [
migrations.CreateModel(
name='UserProfile',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('password', models.CharField(max_length=128, verbose_name='password')),
('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')),
('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')),
('first_name', models.CharField(blank=True, max_length=30, verbose_name='first name')),
('last_name', models.CharField(blank=True, max_length=150, verbose_name='last name')),
('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')),
('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')),
('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')),
('username', models.CharField(db_index=True, max_length=150, unique=True, verbose_name='用户账号')),
('secret', models.CharField(default=uuid.uuid4, max_length=255, verbose_name='加密秘钥')),
('email', models.CharField(blank=True, max_length=255, null=True, verbose_name='邮箱')),
('mobile', models.CharField(blank=True, max_length=255, null=True, verbose_name='电话')),
('avatar', models.TextField(blank=True, null=True, verbose_name='头像')),
('name', models.CharField(max_length=40, verbose_name='姓名')),
('gender', models.CharField(blank=True, max_length=8, null=True, verbose_name='性别')),
('remark', models.TextField(null=True, verbose_name='备注')),
('user_type', models.IntegerField(default=0, verbose_name='用户类型')),
('create_datetime', apps.vadmin.op_drf.fields.CreateDateTimeField(auto_now_add=True, help_text='创建时间', null=True, verbose_name='创建时间')),
('update_datetime', apps.vadmin.op_drf.fields.UpdateDateTimeField(auto_now=True, help_text='修改时间', null=True, verbose_name='修改时间')),
],
options={
'verbose_name': '用户管理',
'verbose_name_plural': '用户管理',
},
managers=[
('objects', django.contrib.auth.models.UserManager()),
],
),
migrations.CreateModel(
name='Dept',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('description', apps.vadmin.op_drf.fields.DescriptionField(blank=True, default='', help_text='描述', null=True, verbose_name='描述')),
('modifier', apps.vadmin.op_drf.fields.ModifierCharField(blank=True, help_text='该记录最后修改者', max_length=255, null=True, verbose_name='修改者')),
('update_datetime', apps.vadmin.op_drf.fields.UpdateDateTimeField(auto_now=True, help_text='修改时间', null=True, verbose_name='修改时间')),
('create_datetime', apps.vadmin.op_drf.fields.CreateDateTimeField(auto_now_add=True, help_text='创建时间', null=True, verbose_name='创建时间')),
('deptName', models.CharField(max_length=64, verbose_name='部门名称')),
('orderNum', models.IntegerField(verbose_name='显示排序')),
('owner', models.CharField(blank=True, max_length=32, null=True, verbose_name='负责人')),
('phone', models.CharField(blank=True, max_length=32, null=True, verbose_name='联系电话')),
('email', models.CharField(blank=True, max_length=32, null=True, verbose_name='邮箱')),
('status', models.CharField(blank=True, max_length=8, null=True, verbose_name='部门状态')),
('creator', models.ForeignKey(db_constraint=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_query_name='creator_query', to=settings.AUTH_USER_MODEL, verbose_name='创建者')),
('parentId', models.ForeignKey(blank=True, db_constraint=False, default=False, null=True, on_delete=django.db.models.deletion.CASCADE, to='permission.Dept', verbose_name='上级部门')),
],
options={
'verbose_name': '部门管理',
'verbose_name_plural': '部门管理',
},
),
migrations.CreateModel(
name='Menu',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('description', apps.vadmin.op_drf.fields.DescriptionField(blank=True, default='', help_text='描述', null=True, verbose_name='描述')),
('modifier', apps.vadmin.op_drf.fields.ModifierCharField(blank=True, help_text='该记录最后修改者', max_length=255, null=True, verbose_name='修改者')),
('update_datetime', apps.vadmin.op_drf.fields.UpdateDateTimeField(auto_now=True, help_text='修改时间', null=True, verbose_name='修改时间')),
('create_datetime', apps.vadmin.op_drf.fields.CreateDateTimeField(auto_now_add=True, help_text='创建时间', null=True, verbose_name='创建时间')),
('menuType', models.CharField(max_length=8, verbose_name='菜单类型')),
('icon', models.CharField(blank=True, max_length=64, null=True, verbose_name='菜单图标')),
('name', models.CharField(max_length=64, verbose_name='菜单名称')),
('orderNum', models.IntegerField(verbose_name='显示排序')),
('isFrame', models.CharField(max_length=8, verbose_name='是否外链')),
('web_path', models.CharField(blank=True, max_length=128, null=True, verbose_name='前端路由地址')),
('component_path', models.CharField(blank=True, max_length=128, null=True, verbose_name='前端组件路径')),
('interface_path', models.CharField(blank=True, max_length=256, null=True, verbose_name='后端接口路径')),
('interface_method', models.CharField(default='GET', max_length=16, verbose_name='接口请求方式')),
('perms', models.CharField(blank=True, max_length=256, null=True, verbose_name='权限标识')),
('status', models.CharField(max_length=8, verbose_name='菜单状态')),
('visible', models.CharField(max_length=8, verbose_name='显示状态')),
('isCache', models.CharField(max_length=8, verbose_name='是否缓存')),
('creator', models.ForeignKey(db_constraint=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_query_name='creator_query', to=settings.AUTH_USER_MODEL, verbose_name='创建者')),
('parentId', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.CASCADE, to='permission.Menu', verbose_name='上级菜单')),
],
options={
'verbose_name': '菜单管理',
'verbose_name_plural': '菜单管理',
},
),
migrations.CreateModel(
name='Role',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('description', apps.vadmin.op_drf.fields.DescriptionField(blank=True, default='', help_text='描述', null=True, verbose_name='描述')),
('modifier', apps.vadmin.op_drf.fields.ModifierCharField(blank=True, help_text='该记录最后修改者', max_length=255, null=True, verbose_name='修改者')),
('update_datetime', apps.vadmin.op_drf.fields.UpdateDateTimeField(auto_now=True, help_text='修改时间', null=True, verbose_name='修改时间')),
('create_datetime', apps.vadmin.op_drf.fields.CreateDateTimeField(auto_now_add=True, help_text='创建时间', null=True, verbose_name='创建时间')),
('roleName', models.CharField(max_length=64, verbose_name='角色名称')),
('roleKey', models.CharField(max_length=64, verbose_name='权限字符')),
('roleSort', models.IntegerField(verbose_name='角色顺序')),
('status', models.CharField(max_length=8, verbose_name='角色状态')),
('admin', models.BooleanField(default=False, verbose_name='是否为admin')),
('dataScope', models.CharField(choices=[('1', '全部数据权限'), ('2', '自定数据权限'), ('3', '本部门数据权限'), ('4', '本部门及以下数据权限'), ('5', '仅本人数据权限')], default='1', max_length=8, verbose_name='权限范围')),
('remark', models.TextField(blank=True, help_text='备注', null=True, verbose_name='备注')),
('creator', models.ForeignKey(db_constraint=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_query_name='creator_query', to=settings.AUTH_USER_MODEL, verbose_name='创建者')),
('dept', models.ManyToManyField(db_constraint=False, to='permission.Dept', verbose_name='数据权限-关联部门')),
('menu', models.ManyToManyField(db_constraint=False, to='permission.Menu', verbose_name='关联菜单权限')),
],
options={
'verbose_name': '角色管理',
'verbose_name_plural': '角色管理',
},
),
migrations.CreateModel(
name='Post',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('description', apps.vadmin.op_drf.fields.DescriptionField(blank=True, default='', help_text='描述', null=True, verbose_name='描述')),
('modifier', apps.vadmin.op_drf.fields.ModifierCharField(blank=True, help_text='该记录最后修改者', max_length=255, null=True, verbose_name='修改者')),
('update_datetime', apps.vadmin.op_drf.fields.UpdateDateTimeField(auto_now=True, help_text='修改时间', null=True, verbose_name='修改时间')),
('create_datetime', apps.vadmin.op_drf.fields.CreateDateTimeField(auto_now_add=True, help_text='创建时间', null=True, verbose_name='创建时间')),
('postName', models.CharField(max_length=64, verbose_name='岗位名称')),
('postCode', models.CharField(max_length=32, verbose_name='岗位编码')),
('postSort', models.IntegerField(verbose_name='岗位顺序')),
('status', models.CharField(max_length=8, verbose_name='岗位状态')),
('remark', models.TextField(blank=True, help_text='备注', null=True, verbose_name='备注')),
('creator', models.ForeignKey(db_constraint=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_query_name='creator_query', to=settings.AUTH_USER_MODEL, verbose_name='创建者')),
],
options={
'verbose_name': '岗位管理',
'verbose_name_plural': '岗位管理',
},
),
migrations.AddField(
model_name='userprofile',
name='dept',
field=models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.CASCADE, to='permission.Dept', verbose_name='归属部门'),
),
migrations.AddField(
model_name='userprofile',
name='groups',
field=models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.Group', verbose_name='groups'),
),
migrations.AddField(
model_name='userprofile',
name='post',
field=models.ManyToManyField(db_constraint=False, to='permission.Post', verbose_name='关联岗位'),
),
migrations.AddField(
model_name='userprofile',
name='role',
field=models.ManyToManyField(db_constraint=False, to='permission.Role', verbose_name='关联角色'),
),
migrations.AddField(
model_name='userprofile',
name='user_permissions',
field=models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.Permission', verbose_name='user permissions'),
),
]

View File

@ -1,7 +1,7 @@
from django.db.models import CASCADE from django.db.models import CASCADE
from django.db.models import CharField, IntegerField, ForeignKey from django.db.models import CharField, IntegerField, ForeignKey
from apps.op_drf.models import CoreModel from ...op_drf.models import CoreModel
class Dept(CoreModel): class Dept(CoreModel):

View File

@ -1,6 +1,6 @@
from django.db.models import IntegerField, ForeignKey, CharField, CASCADE from django.db.models import IntegerField, ForeignKey, CharField, CASCADE
from apps.op_drf.models import CoreModel from ...op_drf.models import CoreModel
class Menu(CoreModel): class Menu(CoreModel):

View File

@ -1,6 +1,6 @@
from django.db.models import IntegerField, BooleanField, CharField, TextField from django.db.models import IntegerField, BooleanField, CharField, TextField
from apps.op_drf.models import CoreModel from ...op_drf.models import CoreModel
class Post(CoreModel): class Post(CoreModel):

View File

@ -1,6 +1,6 @@
from django.db.models import IntegerField, BooleanField, CharField, TextField, ManyToManyField from django.db.models import IntegerField, BooleanField, CharField, TextField, ManyToManyField
from apps.op_drf.models import CoreModel from ...op_drf.models import CoreModel
class Role(CoreModel): class Role(CoreModel):

View File

@ -3,7 +3,7 @@ from uuid import uuid4
from django.contrib.auth.models import UserManager, AbstractUser from django.contrib.auth.models import UserManager, AbstractUser
from django.db.models import IntegerField, ForeignKey, CharField, TextField, ManyToManyField, CASCADE from django.db.models import IntegerField, ForeignKey, CharField, TextField, ManyToManyField, CASCADE
from apps.op_drf.fields import CreateDateTimeField, UpdateDateTimeField from ...op_drf.fields import CreateDateTimeField, UpdateDateTimeField
class UserProfile(AbstractUser): class UserProfile(AbstractUser):

View File

@ -1,9 +1,9 @@
from rest_framework import serializers from rest_framework import serializers
from rest_framework.validators import UniqueValidator from rest_framework.validators import UniqueValidator
from apps.op_drf.serializers import CustomModelSerializer from ..op_drf.serializers import CustomModelSerializer
from apps.permission.models import Menu, Dept, Post, Role, UserProfile from ..permission.models import Menu, Dept, Post, Role, UserProfile
from apps.system.models import MessagePush from ..system.models import MessagePush
# ================================================= # # ================================================= #

View File

@ -1,7 +1,7 @@
from django.urls import re_path from django.urls import re_path
from rest_framework.routers import DefaultRouter from rest_framework.routers import DefaultRouter
from apps.permission.views import MenuModelViewSet, DeptModelViewSet, PostModelViewSet, RoleModelViewSet, \ from ..permission.views import MenuModelViewSet, DeptModelViewSet, PostModelViewSet, RoleModelViewSet, \
UserProfileModelViewSet UserProfileModelViewSet
router = DefaultRouter() router = DefaultRouter()

View File

@ -2,16 +2,16 @@ from django.contrib.auth import authenticate
from rest_framework.request import Request from rest_framework.request import Request
from rest_framework.views import APIView from rest_framework.views import APIView
from apps.op_drf.viewsets import CustomModelViewSet from ..op_drf.viewsets import CustomModelViewSet
from apps.permission.filters import MenuFilter, DeptFilter, PostFilter, RoleFilter, UserProfileFilter from ..permission.filters import MenuFilter, DeptFilter, PostFilter, RoleFilter, UserProfileFilter
from apps.permission.models import Role, Menu, Dept, Post, UserProfile from ..permission.models import Role, Menu, Dept, Post, UserProfile
from apps.permission.serializers import UserProfileSerializer, MenuSerializer, RoleSerializer, \ from ..permission.serializers import UserProfileSerializer, MenuSerializer, RoleSerializer, \
MenuCreateUpdateSerializer, DeptSerializer, DeptCreateUpdateSerializer, PostSerializer, PostCreateUpdateSerializer, \ MenuCreateUpdateSerializer, DeptSerializer, DeptCreateUpdateSerializer, PostSerializer, PostCreateUpdateSerializer, \
RoleCreateUpdateSerializer, DeptTreeSerializer, MenuTreeSerializer, UserProfileCreateUpdateSerializer, \ RoleCreateUpdateSerializer, DeptTreeSerializer, MenuTreeSerializer, UserProfileCreateUpdateSerializer, \
PostSimpleSerializer, RoleSimpleSerializer, ExportUserProfileSerializer, ExportRoleSerializer, ExportPostSerializer PostSimpleSerializer, RoleSimpleSerializer, ExportUserProfileSerializer, ExportRoleSerializer, ExportPostSerializer
from apps.op_drf.filters import DataLevelPermissionsFilter from ..op_drf.filters import DataLevelPermissionsFilter
from utils.export_excel import export_excel_save_model from ..utils.export_excel import export_excel_save_model
from utils.response import SuccessResponse, ErrorResponse from ..utils.response import SuccessResponse, ErrorResponse
class GetUserProfileView(APIView): class GetUserProfileView(APIView):

View File

@ -7,7 +7,8 @@ def getSql(filename):
:param filename: 例如os.path.join('permission','permission_dept.sql') :param filename: 例如os.path.join('permission','permission_dept.sql')
:return: :return:
""" """
pwd = os.path.join(os.getcwd(), 'scripts', filename) abspath = os.path.abspath(os.path.join(os.path.abspath(os.path.dirname(__file__)), ".."))
pwd = os.path.join(abspath, 'scripts', filename)
with open(pwd,'rb') as fp: with open(pwd,'rb') as fp:
content = fp.read().decode('utf8') content = fp.read().decode('utf8')
return [ele for ele in content.split('\n') if not ele.startswith('--') and ele.strip(' ')] return [ele for ele in content.split('\n') if not ele.startswith('--') and ele.strip(' ')]

View File

@ -34,60 +34,60 @@
-- ---------------------------- -- ----------------------------
INSERT INTO `permission_menu` VALUES (1, '', 'admin', '2021-02-27 07:50:00.410101', '2021-02-27 07:41:28.660364', '0', 'system', '系统管理', 1, '1', '/system', '', '', 'GET', NULL, '1', '1', '1', 1, NULL); INSERT INTO `permission_menu` VALUES (1, '', 'admin', '2021-02-27 07:50:00.410101', '2021-02-27 07:41:28.660364', '0', 'system', '系统管理', 1, '1', '/system', '', '', 'GET', NULL, '1', '1', '1', 1, NULL);
INSERT INTO `permission_menu` VALUES (2, '', 'admin', '2021-02-27 07:51:14.500722', '2021-02-27 07:51:14.500768', '0', 'peoples', '权限管理', 2, '1', '/permission', '', '', 'GET', NULL, '1', '1', '1', 1, NULL); INSERT INTO `permission_menu` VALUES (2, '', 'admin', '2021-02-27 07:51:14.500722', '2021-02-27 07:51:14.500768', '0', 'peoples', '权限管理', 2, '1', '/permission', '', '', 'GET', NULL, '1', '1', '1', 1, NULL);
INSERT INTO `permission_menu` VALUES (3, '', 'admin', '2021-02-27 08:20:40.164651', '2021-02-27 07:54:38.630670', '1', 'dict', '字典管理', 1, '1', '/system/dict', 'system/dict/index', 'system/dict/type', 'GET', 'system:dict:type:get', '1', '1', '1', 1, 1); INSERT INTO `permission_menu` VALUES (3, '', 'admin', '2021-02-27 08:20:40.164651', '2021-02-27 07:54:38.630670', '1', 'dict', '字典管理', 1, '1', '/system/dict', 'system/dict/index', '/admin/system/dict/type', 'GET', 'system:dict:type:get', '1', '1', '1', 1, 1);
INSERT INTO `permission_menu` VALUES (4, '', 'admin', '2021-02-27 08:24:03.776515', '2021-02-27 08:06:51.019173', '1', 'edit', '参数管理', 2, '1', '/system/config', 'system/config/index', 'system/config/', 'GET', 'system:config:get', '1', '1', '1', 1, 1); INSERT INTO `permission_menu` VALUES (4, '', 'admin', '2021-02-27 08:24:03.776515', '2021-02-27 08:06:51.019173', '1', 'edit', '参数管理', 2, '1', '/system/config', 'system/config/index', '/admin/system/config/', 'GET', 'system:config:get', '1', '1', '1', 1, 1);
INSERT INTO `permission_menu` VALUES (5, '', 'admin', '2021-02-27 08:26:56.407590', '2021-02-27 08:25:37.339270', '1', 'post', '岗位管理', 1, '1', '/permission/post', 'permission/post/index', 'permission/post', 'GET', 'permission:post:get', '1', '1', '1', 1, 2); INSERT INTO `permission_menu` VALUES (5, '', 'admin', '2021-02-27 08:26:56.407590', '2021-02-27 08:25:37.339270', '1', 'post', '岗位管理', 1, '1', '/permission/post', 'permission/post/index', '/admin/permission/post', 'GET', 'permission:post:get', '1', '1', '1', 1, 2);
INSERT INTO `permission_menu` VALUES (6, '', 'admin', '2021-02-27 08:26:48.454509', '2021-02-27 08:26:48.454553', '1', 'tree', '部门管理', 2, '1', '/permission/dept', 'permission/dept/index', 'permission/dept', 'GET', 'permission:dept:get', '1', '1', '1', 1, 2); INSERT INTO `permission_menu` VALUES (6, '', 'admin', '2021-02-27 08:26:48.454509', '2021-02-27 08:26:48.454553', '1', 'tree', '部门管理', 2, '1', '/permission/dept', 'permission/dept/index', '/admin/permission/dept', 'GET', 'permission:dept:get', '1', '1', '1', 1, 2);
INSERT INTO `permission_menu` VALUES (7, '', 'admin', '2021-02-27 08:28:20.411115', '2021-02-27 08:28:20.411164', '1', 'tree-table', '菜单管理', 3, '1', '/permission/menu', 'permission/menu/index', 'permission/menus', 'GET', 'permission:menus:get', '1', '1', '1', 1, 2); INSERT INTO `permission_menu` VALUES (7, '', 'admin', '2021-02-27 08:28:20.411115', '2021-02-27 08:28:20.411164', '1', 'tree-table', '菜单管理', 3, '1', '/permission/menu', 'permission/menu/index', '/admin/permission/menus', 'GET', 'permission:menus:get', '1', '1', '1', 1, 2);
INSERT INTO `permission_menu` VALUES (8, '', 'admin', '2021-02-27 08:29:30.153322', '2021-02-27 08:29:30.153361', '1', 'peoples', '角色管理', 4, '1', '/permission/role', 'permission/role/index', 'permission/role', 'GET', 'permission:role:get', '1', '1', '1', 1, 2); INSERT INTO `permission_menu` VALUES (8, '', 'admin', '2021-02-27 08:29:30.153322', '2021-02-27 08:29:30.153361', '1', 'peoples', '角色管理', 4, '1', '/permission/role', 'permission/role/index', '/admin/permission/role', 'GET', 'permission:role:get', '1', '1', '1', 1, 2);
INSERT INTO `permission_menu` VALUES (9, '', 'admin', '2021-02-27 08:30:14.030845', '2021-02-27 08:30:14.030888', '1', 'user', '用户管理', 5, '1', '/permission/user', 'permission/user/index', 'permission/user', 'GET', 'permission:user:get', '1', '1', '1', 1, 2); INSERT INTO `permission_menu` VALUES (9, '', 'admin', '2021-02-27 08:30:14.030845', '2021-02-27 08:30:14.030888', '1', 'user', '用户管理', 5, '1', '/permission/user', 'permission/user/index', '/admin/permission/user', 'GET', 'permission:user:get', '1', '1', '1', 1, 2);
INSERT INTO `permission_menu` VALUES (10, '', 'admin', '2021-02-27 08:37:24.948235', '2021-02-27 08:36:04.824117', '0', 'guide', 'dvAdmin官网', 9, '0', 'https://django-vue-admin.com', '', NULL, 'GET', NULL, '1', '1', '1', 1, NULL); INSERT INTO `permission_menu` VALUES (10, '', 'admin', '2021-02-27 08:37:24.948235', '2021-02-27 08:36:04.824117', '0', 'guide', 'dvAdmin官网', 9, '0', 'https://django-vue-admin.com', '', NULL, 'GET', NULL, '1', '1', '1', 1, NULL);
INSERT INTO `permission_menu` VALUES (11, '', 'admin', '2021-02-27 16:19:21.529666', '2021-02-27 16:17:36.685174', '1', 'job', '文件管理', 3, '1', '/system/savefile', 'system/savefile/index', '/system/savefile', 'GET', 'system:savefile:get', '1', '1', '1', 1, 1); INSERT INTO `permission_menu` VALUES (11, '', 'admin', '2021-02-27 16:19:21.529666', '2021-02-27 16:17:36.685174', '1', 'job', '文件管理', 3, '1', '/system/savefile', 'system/savefile/index', '/admin/system/savefile', 'GET', 'system:savefile:get', '1', '1', '1', 1, 1);
INSERT INTO `permission_menu` VALUES (13, '', 'admin', '2021-03-03 14:41:08.227821', '2021-03-03 14:18:52.530449', '2', NULL, '用户新增', 1, '1', NULL, NULL, '/permission/user/', 'POST', 'permission:user:post', '1', '1', '1', 1, 9); INSERT INTO `permission_menu` VALUES (13, '', 'admin', '2021-03-03 14:41:08.227821', '2021-03-03 14:18:52.530449', '2', NULL, '用户新增', 1, '1', NULL, NULL, '/admin/permission/user/', 'POST', 'permission:user:post', '1', '1', '1', 1, 9);
INSERT INTO `permission_menu` VALUES (14, '', 'admin', '2021-03-03 14:43:34.207938', '2021-03-03 14:43:34.208093', '2', NULL, '用户修改', 2, '1', NULL, NULL, '/permission/user/{id}/', 'PUT', 'permission:user:{id}:put', '1', '1', '1', 1, 9); INSERT INTO `permission_menu` VALUES (14, '', 'admin', '2021-03-03 14:43:34.207938', '2021-03-03 14:43:34.208093', '2', NULL, '用户修改', 2, '1', NULL, NULL, '/admin/permission/user/{id}/', 'PUT', 'permission:user:{id}:put', '1', '1', '1', 1, 9);
INSERT INTO `permission_menu` VALUES (15, '', 'admin', '2021-03-03 14:44:58.006289', '2021-03-03 14:44:58.006338', '2', NULL, '用户删除', 3, '1', '', NULL, '/permission/user/{id}/', 'DELETE', 'permission:user:{id}:delete', '1', '1', '1', 1, 9); INSERT INTO `permission_menu` VALUES (15, '', 'admin', '2021-03-03 14:44:58.006289', '2021-03-03 14:44:58.006338', '2', NULL, '用户删除', 3, '1', '', NULL, '/admin/permission/user/{id}/', 'DELETE', 'permission:user:{id}:delete', '1', '1', '1', 1, 9);
INSERT INTO `permission_menu` VALUES (16, '', 'admin', '2021-03-03 14:45:50.575443', '2021-03-03 14:45:50.575507', '2', NULL, '用户导出', 4, '1', NULL, NULL, '/permission/user/export/', 'GET', 'permission:user:export:get', '1', '1', '1', 1, 9); INSERT INTO `permission_menu` VALUES (16, '', 'admin', '2021-03-03 14:45:50.575443', '2021-03-03 14:45:50.575507', '2', NULL, '用户导出', 4, '1', NULL, NULL, '/admin/permission/user/export/', 'GET', 'permission:user:export:get', '1', '1', '1', 1, 9);
INSERT INTO `permission_menu` VALUES (17, '', 'admin', '2021-03-03 14:51:14.157310', '2021-03-03 14:51:14.157447', '2', NULL, '用户导入', 5, '1', NULL, NULL, '/permission/user/import/', 'POST', 'permission:user:import:post', '1', '1', '1', 1, 9); INSERT INTO `permission_menu` VALUES (17, '', 'admin', '2021-03-03 14:51:14.157310', '2021-03-03 14:51:14.157447', '2', NULL, '用户导入', 5, '1', NULL, NULL, '/admin/permission/user/import/', 'POST', 'permission:user:import:post', '1', '1', '1', 1, 9);
INSERT INTO `permission_menu` VALUES (18, '', 'admin', '2021-03-03 14:51:51.220886', '2021-03-03 14:51:51.220933', '2', NULL, '重置密码', 6, '1', NULL, NULL, '/permission/user/resetPwd/', 'PUT', 'permission:user:resetpwd:put', '1', '1', '1', 1, 9); INSERT INTO `permission_menu` VALUES (18, '', 'admin', '2021-03-03 14:51:51.220886', '2021-03-03 14:51:51.220933', '2', NULL, '重置密码', 6, '1', NULL, NULL, '/admin/permission/user/resetPwd/', 'PUT', 'permission:user:resetpwd:put', '1', '1', '1', 1, 9);
INSERT INTO `permission_menu` VALUES (19, '', 'admin', '2021-03-03 14:53:47.877063', '2021-03-03 14:53:47.877116', '2', NULL, '角色新增', 1, '1', NULL, NULL, '/permission/role/', 'POST', 'permission:role:post', '1', '1', '1', 1, 8); INSERT INTO `permission_menu` VALUES (19, '', 'admin', '2021-03-03 14:53:47.877063', '2021-03-03 14:53:47.877116', '2', NULL, '角色新增', 1, '1', NULL, NULL, '/admin/permission/role/', 'POST', 'permission:role:post', '1', '1', '1', 1, 8);
INSERT INTO `permission_menu` VALUES (20, '', 'admin', '2021-03-03 14:54:28.794968', '2021-03-03 14:54:28.795015', '2', NULL, '角色修改', 2, '1', NULL, NULL, '/permission/role/{id}/', 'PUT', 'permission:role:{id}:put', '1', '1', '1', 1, 8); INSERT INTO `permission_menu` VALUES (20, '', 'admin', '2021-03-03 14:54:28.794968', '2021-03-03 14:54:28.795015', '2', NULL, '角色修改', 2, '1', NULL, NULL, '/admin/permission/role/{id}/', 'PUT', 'permission:role:{id}:put', '1', '1', '1', 1, 8);
INSERT INTO `permission_menu` VALUES (21, '', 'admin', '2021-03-03 14:58:00.798718', '2021-03-03 14:58:00.798813', '2', NULL, '删除角色', 3, '1', NULL, NULL, '/permission/role/{id}/', 'DELETE', 'permission:role:{id}:delete', '1', '1', '1', 1, 8); INSERT INTO `permission_menu` VALUES (21, '', 'admin', '2021-03-03 14:58:00.798718', '2021-03-03 14:58:00.798813', '2', NULL, '删除角色', 3, '1', NULL, NULL, '/admin/permission/role/{id}/', 'DELETE', 'permission:role:{id}:delete', '1', '1', '1', 1, 8);
INSERT INTO `permission_menu` VALUES (22, '', 'admin', '2021-03-03 14:58:28.940577', '2021-03-03 14:58:28.940625', '2', NULL, '角色导出', 4, '1', NULL, NULL, '/permission/role/export/', 'GET', 'permission:role:export:get', '1', '1', '1', 1, 8); INSERT INTO `permission_menu` VALUES (22, '', 'admin', '2021-03-03 14:58:28.940577', '2021-03-03 14:58:28.940625', '2', NULL, '角色导出', 4, '1', NULL, NULL, '/admin/permission/role/export/', 'GET', 'permission:role:export:get', '1', '1', '1', 1, 8);
INSERT INTO `permission_menu` VALUES (23, '', 'admin', '2021-03-03 15:00:41.081771', '2021-03-03 15:00:41.081832', '2', NULL, '菜单新增', 1, '1', NULL, NULL, '/permission/menus/', 'POST', 'permission:menus:post', '1', '1', '1', 1, 7); INSERT INTO `permission_menu` VALUES (23, '', 'admin', '2021-03-03 15:00:41.081771', '2021-03-03 15:00:41.081832', '2', NULL, '菜单新增', 1, '1', NULL, NULL, '/admin/permission/menus/', 'POST', 'permission:menus:post', '1', '1', '1', 1, 7);
INSERT INTO `permission_menu` VALUES (24, '', 'admin', '2021-03-03 15:01:03.178824', '2021-03-03 15:01:03.178874', '2', NULL, '菜单修改', 2, '1', NULL, NULL, '/permission/menus/{id}/', 'PUT', 'permission:menus:{id}:put', '1', '1', '1', 1, 7); INSERT INTO `permission_menu` VALUES (24, '', 'admin', '2021-03-03 15:01:03.178824', '2021-03-03 15:01:03.178874', '2', NULL, '菜单修改', 2, '1', NULL, NULL, '/admin/permission/menus/{id}/', 'PUT', 'permission:menus:{id}:put', '1', '1', '1', 1, 7);
INSERT INTO `permission_menu` VALUES (25, '', 'admin', '2021-03-03 15:02:56.123525', '2021-03-03 15:02:56.123571', '2', NULL, '菜单删除', 3, '1', NULL, NULL, '/permission/menus/{id}/', 'DELETE', 'permission:menus:{id}:delete', '1', '1', '1', 1, 7); INSERT INTO `permission_menu` VALUES (25, '', 'admin', '2021-03-03 15:02:56.123525', '2021-03-03 15:02:56.123571', '2', NULL, '菜单删除', 3, '1', NULL, NULL, '/admin/permission/menus/{id}/', 'DELETE', 'permission:menus:{id}:delete', '1', '1', '1', 1, 7);
INSERT INTO `permission_menu` VALUES (26, '', 'admin', '2021-03-03 15:04:35.191774', '2021-03-03 15:04:35.191856', '2', NULL, '部门新增', 1, '1', NULL, NULL, '/permission/dept/', 'POST', 'permission:dept:post', '1', '1', '1', 1, 6); INSERT INTO `permission_menu` VALUES (26, '', 'admin', '2021-03-03 15:04:35.191774', '2021-03-03 15:04:35.191856', '2', NULL, '部门新增', 1, '1', NULL, NULL, '/admin/permission/dept/', 'POST', 'permission:dept:post', '1', '1', '1', 1, 6);
INSERT INTO `permission_menu` VALUES (27, '', 'admin', '2021-03-03 15:04:56.963168', '2021-03-03 15:04:56.963214', '2', NULL, '部门修改', 2, '1', NULL, NULL, '/permission/dept/{id}/', 'PUT', 'permission:dept:{id}:put', '1', '1', '1', 1, 6); INSERT INTO `permission_menu` VALUES (27, '', 'admin', '2021-03-03 15:04:56.963168', '2021-03-03 15:04:56.963214', '2', NULL, '部门修改', 2, '1', NULL, NULL, '/admin/permission/dept/{id}/', 'PUT', 'permission:dept:{id}:put', '1', '1', '1', 1, 6);
INSERT INTO `permission_menu` VALUES (28, '', 'admin', '2021-03-03 15:05:39.602577', '2021-03-03 15:05:39.602622', '2', NULL, '部门删除', 3, '1', NULL, NULL, '/permission/dept/{id}/', 'DELETE', 'permission:dept:{id}:delete', '1', '1', '1', 1, 6); INSERT INTO `permission_menu` VALUES (28, '', 'admin', '2021-03-03 15:05:39.602577', '2021-03-03 15:05:39.602622', '2', NULL, '部门删除', 3, '1', NULL, NULL, '/admin/permission/dept/{id}/', 'DELETE', 'permission:dept:{id}:delete', '1', '1', '1', 1, 6);
INSERT INTO `permission_menu` VALUES (29, '', 'admin', '2021-03-03 15:06:50.095341', '2021-03-03 15:06:50.095388', '2', NULL, '岗位新增', 1, '1', NULL, NULL, '/permission/post/', 'POST', 'permission:post:post', '1', '1', '1', 1, 5); INSERT INTO `permission_menu` VALUES (29, '', 'admin', '2021-03-03 15:06:50.095341', '2021-03-03 15:06:50.095388', '2', NULL, '岗位新增', 1, '1', NULL, NULL, '/admin/permission/post/', 'POST', 'permission:post:post', '1', '1', '1', 1, 5);
INSERT INTO `permission_menu` VALUES (30, '', 'admin', '2021-03-03 15:07:36.013313', '2021-03-03 15:07:36.013358', '2', NULL, '岗位修改', 2, '1', NULL, NULL, '/permission/post/{id}/', 'PUT', 'permission:post:{id}:put', '1', '1', '1', 1, 5); INSERT INTO `permission_menu` VALUES (30, '', 'admin', '2021-03-03 15:07:36.013313', '2021-03-03 15:07:36.013358', '2', NULL, '岗位修改', 2, '1', NULL, NULL, '/admin/permission/post/{id}/', 'PUT', 'permission:post:{id}:put', '1', '1', '1', 1, 5);
INSERT INTO `permission_menu` VALUES (31, '', 'admin', '2021-03-03 15:08:10.371530', '2021-03-03 15:08:10.371575', '2', NULL, '岗位删除', 3, '1', NULL, NULL, '/permission/post/{id}/', 'DELETE', 'permission:post:{id}:delete', '1', '1', '1', 1, 5); INSERT INTO `permission_menu` VALUES (31, '', 'admin', '2021-03-03 15:08:10.371530', '2021-03-03 15:08:10.371575', '2', NULL, '岗位删除', 3, '1', NULL, NULL, '/admin/permission/post/{id}/', 'DELETE', 'permission:post:{id}:delete', '1', '1', '1', 1, 5);
INSERT INTO `permission_menu` VALUES (32, '', 'admin', '2021-03-03 15:09:02.213084', '2021-03-03 15:09:02.213131', '2', NULL, '岗位导出', 4, '1', NULL, NULL, '/permission/post/export/', 'GET', 'permission:post:export:get', '1', '1', '1', 1, 5); INSERT INTO `permission_menu` VALUES (32, '', 'admin', '2021-03-03 15:09:02.213084', '2021-03-03 15:09:02.213131', '2', NULL, '岗位导出', 4, '1', NULL, NULL, '/admin/permission/post/export/', 'GET', 'permission:post:export:get', '1', '1', '1', 1, 5);
INSERT INTO `permission_menu` VALUES (33, '', 'admin', '2021-03-03 15:11:37.616329', '2021-03-03 15:11:37.616415', '2', NULL, '字典新增', 1, '1', NULL, NULL, '/system/dict/type/', 'POST', 'system:dict:type:post', '1', '1', '1', 1, 3); INSERT INTO `permission_menu` VALUES (33, '', 'admin', '2021-03-03 15:11:37.616329', '2021-03-03 15:11:37.616415', '2', NULL, '字典新增', 1, '1', NULL, NULL, '/admin/system/dict/type/', 'POST', 'system:dict:type:post', '1', '1', '1', 1, 3);
INSERT INTO `permission_menu` VALUES (34, '', 'admin', '2021-03-03 15:12:47.237658', '2021-03-03 15:12:47.237713', '2', NULL, '字典修改', 2, '1', NULL, NULL, '/system/dict/type/{id}/', 'PUT', 'system:dict:type:{id}:put', '1', '1', '1', 1, 3); INSERT INTO `permission_menu` VALUES (34, '', 'admin', '2021-03-03 15:12:47.237658', '2021-03-03 15:12:47.237713', '2', NULL, '字典修改', 2, '1', NULL, NULL, '/admin/system/dict/type/{id}/', 'PUT', 'system:dict:type:{id}:put', '1', '1', '1', 1, 3);
INSERT INTO `permission_menu` VALUES (35, '', 'admin', '2021-03-03 15:13:40.185174', '2021-03-03 15:13:40.185230', '2', NULL, '字典删除', 3, '1', NULL, NULL, '/system/dict/type/{id}/', 'DELETE', 'system:dict:type:{id}:delete', '1', '1', '1', 1, 3); INSERT INTO `permission_menu` VALUES (35, '', 'admin', '2021-03-03 15:13:40.185174', '2021-03-03 15:13:40.185230', '2', NULL, '字典删除', 3, '1', NULL, NULL, '/admin/system/dict/type/{id}/', 'DELETE', 'system:dict:type:{id}:delete', '1', '1', '1', 1, 3);
INSERT INTO `permission_menu` VALUES (36, '', 'admin', '2021-03-03 15:15:12.950584', '2021-03-03 15:15:12.950684', '2', NULL, '字典导出', 4, '1', NULL, NULL, '/system/dict/type/export/', 'GET', 'system:dict:type:export:get', '1', '1', '1', 1, 3); INSERT INTO `permission_menu` VALUES (36, '', 'admin', '2021-03-03 15:15:12.950584', '2021-03-03 15:15:12.950684', '2', NULL, '字典导出', 4, '1', NULL, NULL, '/admin/system/dict/type/export/', 'GET', 'system:dict:type:export:get', '1', '1', '1', 1, 3);
INSERT INTO `permission_menu` VALUES (37, '', 'admin', '2021-03-03 15:16:54.709780', '2021-03-03 15:16:20.868146', '2', NULL, '清理缓存', 5, '1', NULL, NULL, '/system/dict/type/clearCache/', 'DELETE', 'system:dict:type:clearcache:delete', '1', '1', '1', 1, 3); INSERT INTO `permission_menu` VALUES (37, '', 'admin', '2021-03-03 15:16:54.709780', '2021-03-03 15:16:20.868146', '2', NULL, '清理缓存', 5, '1', NULL, NULL, '/admin/system/dict/type/clearCache/', 'DELETE', 'system:dict:type:clearcache:delete', '1', '1', '1', 1, 3);
INSERT INTO `permission_menu` VALUES (38, '', 'admin', '2021-03-03 15:17:54.232085', '2021-03-03 15:17:54.232166', '2', NULL, '参数新增', 1, '1', NULL, NULL, '/system/config/', 'POST', 'system:config:post', '1', '1', '1', 1, 4); INSERT INTO `permission_menu` VALUES (38, '', 'admin', '2021-03-03 15:17:54.232085', '2021-03-03 15:17:54.232166', '2', NULL, '参数新增', 1, '1', NULL, NULL, '/admin/system/config/', 'POST', 'system:config:post', '1', '1', '1', 1, 4);
INSERT INTO `permission_menu` VALUES (39, '', 'admin', '2021-03-03 15:18:37.088187', '2021-03-03 15:18:37.088237', '2', NULL, '参数修改', 2, '1', NULL, NULL, '/system/config/{id}/', 'PUT', 'system:config:{id}:put', '1', '1', '1', 1, 4); INSERT INTO `permission_menu` VALUES (39, '', 'admin', '2021-03-03 15:18:37.088187', '2021-03-03 15:18:37.088237', '2', NULL, '参数修改', 2, '1', NULL, NULL, '/admin/system/config/{id}/', 'PUT', 'system:config:{id}:put', '1', '1', '1', 1, 4);
INSERT INTO `permission_menu` VALUES (40, '', 'admin', '2021-03-03 15:19:05.532556', '2021-03-03 15:19:05.532616', '2', NULL, '参数删除', 3, '1', NULL, NULL, '/system/config/{id}/', 'DELETE', 'system:config:{id}:delete', '1', '1', '1', 1, 4); INSERT INTO `permission_menu` VALUES (40, '', 'admin', '2021-03-03 15:19:05.532556', '2021-03-03 15:19:05.532616', '2', NULL, '参数删除', 3, '1', NULL, NULL, '/admin/system/config/{id}/', 'DELETE', 'system:config:{id}:delete', '1', '1', '1', 1, 4);
INSERT INTO `permission_menu` VALUES (41, '', 'admin', '2021-03-03 15:19:49.576174', '2021-03-03 15:19:49.576221', '2', NULL, '参数导出', 4, '1', NULL, NULL, '/system/config/export/', 'GET', 'system:config:export:get', '1', '1', '1', 1, 4); INSERT INTO `permission_menu` VALUES (41, '', 'admin', '2021-03-03 15:19:49.576174', '2021-03-03 15:19:49.576221', '2', NULL, '参数导出', 4, '1', NULL, NULL, '/admin/system/config/export/', 'GET', 'system:config:export:get', '1', '1', '1', 1, 4);
INSERT INTO `permission_menu` VALUES (42, '', 'admin', '2021-03-03 15:21:20.098250', '2021-03-03 15:21:20.098345', '2', NULL, '清理缓存', 5, '1', NULL, NULL, '/system/config/clearCache/', 'DELETE', 'system:config:clearcache:delete', '1', '1', '1', 1,4); INSERT INTO `permission_menu` VALUES (42, '', 'admin', '2021-03-03 15:21:20.098250', '2021-03-03 15:21:20.098345', '2', NULL, '清理缓存', 5, '1', NULL, NULL, '/admin/system/config/clearCache/', 'DELETE', 'system:config:clearcache:delete', '1', '1', '1', 1,4);
INSERT INTO `permission_menu` VALUES (43, '', 'admin', '2021-03-03 15:22:48.492613', '2021-03-03 15:22:48.492666', '2', NULL, '文件上传', 1, '1', NULL, NULL, '/system/savefile/', 'POST', 'system:savefile:post', '1', '1', '1', 1, 11); INSERT INTO `permission_menu` VALUES (43, '', 'admin', '2021-03-03 15:22:48.492613', '2021-03-03 15:22:48.492666', '2', NULL, '文件上传', 1, '1', NULL, NULL, '/admin/system/savefile/', 'POST', 'system:savefile:post', '1', '1', '1', 1, 11);
INSERT INTO `permission_menu` VALUES (44, '', 'admin', '2021-03-03 15:23:58.219105', '2021-03-03 15:23:58.219155', '2', NULL, '文件删除', 2, '1', NULL, NULL, '/system/savefile/{id}/', 'DELETE', 'system:savefile:{id}:delete', '1', '1', '1', 1, 11); INSERT INTO `permission_menu` VALUES (44, '', 'admin', '2021-03-03 15:23:58.219105', '2021-03-03 15:23:58.219155', '2', NULL, '文件删除', 2, '1', NULL, NULL, '/admin/system/savefile/{id}/', 'DELETE', 'system:savefile:{id}:delete', '1', '1', '1', 1, 11);
INSERT INTO `permission_menu` VALUES (45, '', 'admin', '2021-03-03 15:25:15.224971', '2021-03-03 15:25:15.225018', '2', NULL, '清理废弃文件', 3, '1', NULL, NULL, '/system/clearsavefile/', 'POST', 'system:clearsavefile:post', '1', '1', '1', 1, 11); INSERT INTO `permission_menu` VALUES (45, '', 'admin', '2021-03-03 15:25:15.224971', '2021-03-03 15:25:15.225018', '2', NULL, '清理废弃文件', 3, '1', NULL, NULL, '/admin/system/clearsavefile/', 'POST', 'system:clearsavefile:post', '1', '1', '1', 1, 11);
INSERT INTO `permission_menu` VALUES (46, '', 'admin', '2021-03-03 15:28:30.061632', '2021-03-03 15:27:19.945663', '2', NULL, '文件下载', 4, '1', NULL, NULL, NULL, 'GET', 'system:clearsavefile:download:post', '1', '1', '1', 1, 11); INSERT INTO `permission_menu` VALUES (46, '', 'admin', '2021-03-03 15:28:30.061632', '2021-03-03 15:27:19.945663', '2', NULL, '文件下载', 4, '1', NULL, NULL, NULL, 'GET', 'system:clearsavefile:download:post', '1', '1', '1', 1, 11);
INSERT INTO `permission_menu` VALUES (47, '', 'admin', '2021-03-07 14:35:34.237127', '2021-03-07 14:32:06.754815', '1', 'message', '通知公告', 4, '1', 'system/message', 'system/message/index', '/system/message/', 'GET', 'system:message:get', '1', '1', '1', 1, 1); INSERT INTO `permission_menu` VALUES (47, '', 'admin', '2021-03-07 14:35:34.237127', '2021-03-07 14:32:06.754815', '1', 'message', '通知公告', 4, '1', 'system/message', 'system/message/index', '/admin/system/message/', 'GET', 'system:message:get', '1', '1', '1', 1, 1);
INSERT INTO `permission_menu` VALUES (48, '', 'admin', '2021-03-07 14:35:06.718432', '2021-03-07 14:35:06.718463', '2', NULL, '发布公告', 1, '1', NULL, NULL, '/system/message/', 'POST', 'system:message:post', '1', '1', '1', 1, 47); INSERT INTO `permission_menu` VALUES (48, '', 'admin', '2021-03-07 14:35:06.718432', '2021-03-07 14:35:06.718463', '2', NULL, '发布公告', 1, '1', NULL, NULL, '/admin/system/message/', 'POST', 'system:message:post', '1', '1', '1', 1, 47);
INSERT INTO `permission_menu` VALUES (49, '', 'admin', '2021-03-08 13:04:32.158707', '2021-03-07 14:36:47.675837', '2', NULL, '修改公告', 2, '1', NULL, NULL, '/system/message/{id}/', 'PUT', 'system:message:{id}:put', '1', '1', '1', 1, 47); INSERT INTO `permission_menu` VALUES (49, '', 'admin', '2021-03-08 13:04:32.158707', '2021-03-07 14:36:47.675837', '2', NULL, '修改公告', 2, '1', NULL, NULL, '/admin/system/message/{id}/', 'PUT', 'system:message:{id}:put', '1', '1', '1', 1, 47);
INSERT INTO `permission_menu` VALUES (50, '', 'admin', '2021-03-08 13:04:58.206693', '2021-03-07 14:37:52.130567', '2', NULL, '删除公告', 3, '1', NULL, NULL, '/permission/menu/{id}/', 'DELETE', 'permission:menu:{id}:delete', '1', '1', '1', 1, 47); INSERT INTO `permission_menu` VALUES (50, '', 'admin', '2021-03-08 13:04:58.206693', '2021-03-07 14:37:52.130567', '2', NULL, '删除公告', 3, '1', NULL, NULL, '/admin/permission/menu/{id}/', 'DELETE', 'permission:menu:{id}:delete', '1', '1', '1', 1, 47);
INSERT INTO `permission_menu` VALUES (51, '', 'admin', '2021-03-07 14:42:37.410336', '2021-03-07 14:42:37.410366', '2', NULL, '公告导出', 4, '1', NULL, NULL, '/system/message/export/', 'GET', 'system:message:export:get', '1', '1', '1', 1, 47); INSERT INTO `permission_menu` VALUES (51, '', 'admin', '2021-03-07 14:42:37.410336', '2021-03-07 14:42:37.410366', '2', NULL, '公告导出', 4, '1', NULL, NULL, '/admin/system/message/export/', 'GET', 'system:message:export:get', '1', '1', '1', 1, 47);
INSERT INTO `permission_menu` VALUES (52, '', 'admin', '2021-03-09 17:19:13.828166', '2021-03-09 17:18:14.976783', '2', NULL, '字典查询', 0, '1', NULL, NULL, '/system/dict/type/', 'GET', 'system:dict:type:get', '1', '1', '1', 1, 3); INSERT INTO `permission_menu` VALUES (52, '', 'admin', '2021-03-09 17:19:13.828166', '2021-03-09 17:18:14.976783', '2', NULL, '字典查询', 0, '1', NULL, NULL, '/admin/system/dict/type/', 'GET', 'system:dict:type:get', '1', '1', '1', 1, 3);
INSERT INTO `permission_menu` VALUES (53, '', 'admin', '2021-03-09 17:19:46.963317', '2021-03-09 17:19:33.953559', '2', NULL, '参数查询', 0, '1', NULL, NULL, '/system/config/', 'GET', 'system:config:get', '1', '1', '1', 1, 4); INSERT INTO `permission_menu` VALUES (53, '', 'admin', '2021-03-09 17:19:46.963317', '2021-03-09 17:19:33.953559', '2', NULL, '参数查询', 0, '1', NULL, NULL, '/admin/system/config/', 'GET', 'system:config:get', '1', '1', '1', 1, 4);
INSERT INTO `permission_menu` VALUES (54, '', 'admin', '2021-03-09 17:20:14.749627', '2021-03-09 17:20:02.783389', '2', NULL, '文件查询', 0, '1', NULL, NULL, '/system/savefile/', 'GET', 'system:savefile:get', '1', '1', '1', 1, 11); INSERT INTO `permission_menu` VALUES (54, '', 'admin', '2021-03-09 17:20:14.749627', '2021-03-09 17:20:02.783389', '2', NULL, '文件查询', 0, '1', NULL, NULL, '/admin/system/savefile/', 'GET', 'system:savefile:get', '1', '1', '1', 1, 11);
INSERT INTO `permission_menu` VALUES (55, '', 'admin', '2021-03-09 17:20:44.604824', '2021-03-09 17:20:36.025364', '2', NULL, '公告查询', 0, '1', NULL, NULL, '/system/message/', 'GET', 'system:message:get', '1', '1', '1', 1, 47); INSERT INTO `permission_menu` VALUES (55, '', 'admin', '2021-03-09 17:20:44.604824', '2021-03-09 17:20:36.025364', '2', NULL, '公告查询', 0, '1', NULL, NULL, '/admin/system/message/', 'GET', 'system:message:get', '1', '1', '1', 1, 47);
INSERT INTO `permission_menu` VALUES (56, '', 'admin', '2021-03-09 17:21:06.429585', '2021-03-09 17:21:06.429629', '2', NULL, '岗位查询', 0, '1', NULL, NULL, '/permission/post/', 'GET', 'permission:post:get', '1', '1', '1', 1, 5); INSERT INTO `permission_menu` VALUES (56, '', 'admin', '2021-03-09 17:21:06.429585', '2021-03-09 17:21:06.429629', '2', NULL, '岗位查询', 0, '1', NULL, NULL, '/admin/permission/post/', 'GET', 'permission:post:get', '1', '1', '1', 1, 5);
INSERT INTO `permission_menu` VALUES (57, '', 'admin', '2021-03-09 17:21:29.013165', '2021-03-09 17:21:29.013210', '2', NULL, '部门查询', 0, '1', NULL, NULL, '/permission/dept/', 'GET', 'permission:dept:get', '1', '1', '1', 1, 6); INSERT INTO `permission_menu` VALUES (57, '', 'admin', '2021-03-09 17:21:29.013165', '2021-03-09 17:21:29.013210', '2', NULL, '部门查询', 0, '1', NULL, NULL, '/admin/permission/dept/', 'GET', 'permission:dept:get', '1', '1', '1', 1, 6);
INSERT INTO `permission_menu` VALUES (58, '', 'admin', '2021-03-09 17:21:56.243957', '2021-03-09 17:21:47.358360', '2', NULL, '菜单查询', 0, '1', NULL, NULL, '/permission/menus/', 'GET', 'permission:menus:get', '1', '1', '1', 1, 7); INSERT INTO `permission_menu` VALUES (58, '', 'admin', '2021-03-09 17:21:56.243957', '2021-03-09 17:21:47.358360', '2', NULL, '菜单查询', 0, '1', NULL, NULL, '/admin/permission/menus/', 'GET', 'permission:menus:get', '1', '1', '1', 1, 7);
INSERT INTO `permission_menu` VALUES (59, '', 'admin', '2021-03-09 17:22:20.140143', '2021-03-09 17:22:20.140189', '2', NULL, '角色查询', 0, '1', '', NULL, '/permission/role/', 'GET', 'permission:role:get', '1', '1', '1', 1, 8); INSERT INTO `permission_menu` VALUES (59, '', 'admin', '2021-03-09 17:22:20.140143', '2021-03-09 17:22:20.140189', '2', NULL, '角色查询', 0, '1', '', NULL, '/admin/permission/role/', 'GET', 'permission:role:get', '1', '1', '1', 1, 8);
INSERT INTO `permission_menu` VALUES (60, '', 'admin', '2021-03-09 17:22:38.595706', '2021-03-09 17:22:38.595751', '2', NULL, '用户查询', 0, '1', NULL, NULL, '/permission/user/', 'GET', 'permission:user:get', '1', '1', '1', 1, 9); INSERT INTO `permission_menu` VALUES (60, '', 'admin', '2021-03-09 17:22:38.595706', '2021-03-09 17:22:38.595751', '2', NULL, '用户查询', 0, '1', NULL, NULL, '/admin/permission/user/', 'GET', 'permission:user:get', '1', '1', '1', 1, 9);

View File

@ -0,0 +1 @@

View File

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -2,5 +2,5 @@ from django.apps import AppConfig
class PermissionConfig(AppConfig): class PermissionConfig(AppConfig):
name = 'system' name = 'vadmin.system'
verbose_name = "权限管理" verbose_name = "权限管理"

View File

@ -1,6 +1,6 @@
import django_filters import django_filters
from apps.system.models import DictDetails, DictData, ConfigSettings, MessagePush, SaveFile from ..system.models import DictDetails, DictData, ConfigSettings, MessagePush, SaveFile
class DictDataFilter(django_filters.rest_framework.FilterSet): class DictDataFilter(django_filters.rest_framework.FilterSet):

View File

@ -0,0 +1,165 @@
# Generated by Django 2.2.16 on 2021-03-13 07:50
import apps.vadmin.op_drf.fields
import apps.vadmin.system.models.save_file
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
initial = True
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.CreateModel(
name='DictData',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('description', apps.vadmin.op_drf.fields.DescriptionField(blank=True, default='', help_text='描述', null=True, verbose_name='描述')),
('modifier', apps.vadmin.op_drf.fields.ModifierCharField(blank=True, help_text='该记录最后修改者', max_length=255, null=True, verbose_name='修改者')),
('update_datetime', apps.vadmin.op_drf.fields.UpdateDateTimeField(auto_now=True, help_text='修改时间', null=True, verbose_name='修改时间')),
('create_datetime', apps.vadmin.op_drf.fields.CreateDateTimeField(auto_now_add=True, help_text='创建时间', null=True, verbose_name='创建时间')),
('dictName', models.CharField(max_length=64, verbose_name='字典名称')),
('dictType', models.CharField(max_length=64, verbose_name='字典类型')),
('status', models.CharField(max_length=8, verbose_name='字典状态')),
('remark', models.CharField(blank=True, max_length=256, null=True, verbose_name='备注')),
('creator', models.ForeignKey(db_constraint=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_query_name='creator_query', to=settings.AUTH_USER_MODEL, verbose_name='创建者')),
],
options={
'verbose_name': '字典管理',
'verbose_name_plural': '字典管理',
},
),
migrations.CreateModel(
name='MessagePush',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('description', apps.vadmin.op_drf.fields.DescriptionField(blank=True, default='', help_text='描述', null=True, verbose_name='描述')),
('modifier', apps.vadmin.op_drf.fields.ModifierCharField(blank=True, help_text='该记录最后修改者', max_length=255, null=True, verbose_name='修改者')),
('update_datetime', apps.vadmin.op_drf.fields.UpdateDateTimeField(auto_now=True, help_text='修改时间', null=True, verbose_name='修改时间')),
('create_datetime', apps.vadmin.op_drf.fields.CreateDateTimeField(auto_now_add=True, help_text='创建时间', null=True, verbose_name='创建时间')),
('title', models.CharField(max_length=128, verbose_name='通知标题')),
('content', models.TextField(verbose_name='通知内容')),
('message_type', models.CharField(max_length=8, verbose_name='通知类型')),
('is_reviewed', models.BooleanField(default=True, verbose_name='是否审核')),
('status', models.CharField(max_length=8, verbose_name='通知状态')),
('to_path', models.CharField(blank=True, max_length=256, null=True, verbose_name='跳转路径')),
('creator', models.ForeignKey(db_constraint=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_query_name='creator_query', to=settings.AUTH_USER_MODEL, verbose_name='创建者')),
],
options={
'verbose_name': '通知公告',
'verbose_name_plural': '通知公告',
},
),
migrations.CreateModel(
name='WebSet',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('description', apps.vadmin.op_drf.fields.DescriptionField(blank=True, default='', help_text='描述', null=True, verbose_name='描述')),
('modifier', apps.vadmin.op_drf.fields.ModifierCharField(blank=True, help_text='该记录最后修改者', max_length=255, null=True, verbose_name='修改者')),
('update_datetime', apps.vadmin.op_drf.fields.UpdateDateTimeField(auto_now=True, help_text='修改时间', null=True, verbose_name='修改时间')),
('create_datetime', apps.vadmin.op_drf.fields.CreateDateTimeField(auto_now_add=True, help_text='创建时间', null=True, verbose_name='创建时间')),
('name', models.CharField(max_length=64, verbose_name='站点名称')),
('web_site', models.CharField(blank=True, max_length=256, null=True, verbose_name='站点网址')),
('logo', models.CharField(blank=True, max_length=256, null=True, verbose_name='网站Logo')),
('record_info', models.TextField(blank=True, null=True, verbose_name='备案信息')),
('statistics_code', models.TextField(blank=True, null=True, verbose_name='统计代码')),
('copyright_info', models.TextField(blank=True, null=True, verbose_name='版权信息')),
('creator', models.ForeignKey(db_constraint=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_query_name='creator_query', to=settings.AUTH_USER_MODEL, verbose_name='创建者')),
],
options={
'verbose_name': '站点设置',
'verbose_name_plural': '站点设置',
},
),
migrations.CreateModel(
name='SaveFile',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('description', apps.vadmin.op_drf.fields.DescriptionField(blank=True, default='', help_text='描述', null=True, verbose_name='描述')),
('modifier', apps.vadmin.op_drf.fields.ModifierCharField(blank=True, help_text='该记录最后修改者', max_length=255, null=True, verbose_name='修改者')),
('update_datetime', apps.vadmin.op_drf.fields.UpdateDateTimeField(auto_now=True, help_text='修改时间', null=True, verbose_name='修改时间')),
('create_datetime', apps.vadmin.op_drf.fields.CreateDateTimeField(auto_now_add=True, help_text='创建时间', null=True, verbose_name='创建时间')),
('name', models.CharField(blank=True, max_length=128, null=True, verbose_name='文件名称')),
('type', models.CharField(blank=True, max_length=32, null=True, verbose_name='文件类型')),
('size', models.CharField(blank=True, max_length=64, null=True, verbose_name='文件大小')),
('address', models.CharField(blank=True, max_length=16, null=True, verbose_name='存储位置')),
('oss_url', models.CharField(blank=True, max_length=200, null=True, verbose_name='OSS地址')),
('status', models.BooleanField(default=True, verbose_name='文件是否存在')),
('file', models.FileField(upload_to=apps.vadmin.system.models.save_file.files_path, verbose_name='文件URL')),
('creator', models.ForeignKey(db_constraint=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_query_name='creator_query', to=settings.AUTH_USER_MODEL, verbose_name='创建者')),
],
options={
'verbose_name': '文件管理',
'verbose_name_plural': '文件管理',
},
),
migrations.CreateModel(
name='MessagePushUser',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('is_read', models.BooleanField(default=False, verbose_name='是否已读')),
('update_datetime', apps.vadmin.op_drf.fields.UpdateDateTimeField(auto_now=True, help_text='修改时间', null=True, verbose_name='修改时间')),
('create_datetime', apps.vadmin.op_drf.fields.CreateDateTimeField(auto_now_add=True, help_text='创建时间', null=True, verbose_name='创建时间')),
('message_push', models.ForeignKey(db_constraint=False, help_text='消息通知', on_delete=django.db.models.deletion.CASCADE, related_name='messagepushuser_message_push', to='system.MessagePush', verbose_name='消息通知')),
('user', models.ForeignKey(db_constraint=False, help_text='用户', on_delete=django.db.models.deletion.CASCADE, related_name='messagepushuser_user', to=settings.AUTH_USER_MODEL, verbose_name='用户')),
],
options={
'verbose_name': '通知公告与用户关系',
'verbose_name_plural': '通知公告与用户关系',
},
),
migrations.AddField(
model_name='messagepush',
name='user',
field=models.ManyToManyField(related_name='user', related_query_name='user_query', through='system.MessagePushUser', to=settings.AUTH_USER_MODEL),
),
migrations.CreateModel(
name='DictDetails',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('description', apps.vadmin.op_drf.fields.DescriptionField(blank=True, default='', help_text='描述', null=True, verbose_name='描述')),
('modifier', apps.vadmin.op_drf.fields.ModifierCharField(blank=True, help_text='该记录最后修改者', max_length=255, null=True, verbose_name='修改者')),
('update_datetime', apps.vadmin.op_drf.fields.UpdateDateTimeField(auto_now=True, help_text='修改时间', null=True, verbose_name='修改时间')),
('create_datetime', apps.vadmin.op_drf.fields.CreateDateTimeField(auto_now_add=True, help_text='创建时间', null=True, verbose_name='创建时间')),
('dictLabel', models.CharField(max_length=64, verbose_name='字典标签')),
('dictValue', models.CharField(max_length=256, verbose_name='字典键值')),
('is_default', models.BooleanField(default=False, verbose_name='是否默认')),
('status', models.CharField(max_length=2, verbose_name='字典状态')),
('sort', models.CharField(max_length=256, verbose_name='字典排序')),
('remark', models.CharField(blank=True, max_length=256, null=True, verbose_name='备注')),
('creator', models.ForeignKey(db_constraint=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_query_name='creator_query', to=settings.AUTH_USER_MODEL, verbose_name='创建者')),
('dict_data', models.ForeignKey(db_constraint=False, on_delete=django.db.models.deletion.CASCADE, to='system.DictData', verbose_name='关联字典')),
],
options={
'verbose_name': '字典详情',
'verbose_name_plural': '字典详情',
},
),
migrations.CreateModel(
name='ConfigSettings',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('description', apps.vadmin.op_drf.fields.DescriptionField(blank=True, default='', help_text='描述', null=True, verbose_name='描述')),
('modifier', apps.vadmin.op_drf.fields.ModifierCharField(blank=True, help_text='该记录最后修改者', max_length=255, null=True, verbose_name='修改者')),
('update_datetime', apps.vadmin.op_drf.fields.UpdateDateTimeField(auto_now=True, help_text='修改时间', null=True, verbose_name='修改时间')),
('create_datetime', apps.vadmin.op_drf.fields.CreateDateTimeField(auto_now_add=True, help_text='创建时间', null=True, verbose_name='创建时间')),
('configName', models.CharField(max_length=64, verbose_name='参数名称')),
('configKey', models.CharField(max_length=256, verbose_name='参数键名')),
('configValue', models.CharField(max_length=256, verbose_name='参数键值')),
('configType', models.CharField(max_length=8, verbose_name='是否内置')),
('status', models.CharField(max_length=8, verbose_name='参数状态')),
('remark', models.CharField(blank=True, max_length=256, null=True, verbose_name='备注')),
('creator', models.ForeignKey(db_constraint=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_query_name='creator_query', to=settings.AUTH_USER_MODEL, verbose_name='创建者')),
],
options={
'verbose_name': '参数设置',
'verbose_name_plural': '参数设置',
},
),
]

View File

@ -1,6 +1,6 @@
from django.db.models import CharField, ForeignKey, BooleanField, CASCADE from django.db.models import CharField, ForeignKey, BooleanField, CASCADE
from apps.op_drf.models import CoreModel from ...op_drf.models import CoreModel
class ConfigSettings(CoreModel): class ConfigSettings(CoreModel):

View File

@ -1,6 +1,6 @@
from django.db.models import TextField, CharField,ForeignKey from django.db.models import TextField, CharField,ForeignKey
from apps.op_drf.models import CoreModel from ...op_drf.models import CoreModel
class DictData(CoreModel): class DictData(CoreModel):

View File

@ -1,6 +1,6 @@
from django.db.models import CharField, ForeignKey, BooleanField, CASCADE from django.db.models import CharField, ForeignKey, BooleanField, CASCADE
from apps.op_drf.models import CoreModel from ...op_drf.models import CoreModel
class DictDetails(CoreModel): class DictDetails(CoreModel):

View File

@ -1,9 +1,9 @@
from django.db import models from django.db import models
from django.db.models import * from django.db.models import *
from apps.op_drf.fields import UpdateDateTimeField, CreateDateTimeField from ...op_drf.fields import UpdateDateTimeField, CreateDateTimeField
from apps.op_drf.models import CoreModel from ...op_drf.models import CoreModel
from apps.permission.models import UserProfile from ...permission.models import UserProfile
""" """
消息通知模型 消息通知模型

View File

@ -4,7 +4,7 @@ import uuid
from django.db.models import CharField, FileField,BooleanField from django.db.models import CharField, FileField,BooleanField
from django.utils import timezone from django.utils import timezone
from apps.op_drf.models import CoreModel from ...op_drf.models import CoreModel
def files_path(instance, filename): def files_path(instance, filename):

View File

@ -1,6 +1,6 @@
from django.db.models import TextField, CharField from django.db.models import TextField, CharField
from apps.op_drf.models import CoreModel from ...op_drf.models import CoreModel
class WebSet(CoreModel): class WebSet(CoreModel):

View File

@ -1,7 +1,7 @@
from rest_framework import serializers from rest_framework import serializers
from apps.op_drf.serializers import CustomModelSerializer from ..op_drf.serializers import CustomModelSerializer
from apps.system.models import DictData, DictDetails, ConfigSettings, SaveFile, MessagePush, MessagePushUser from ..system.models import DictData, DictDetails, ConfigSettings, SaveFile, MessagePush, MessagePushUser
# ================================================= # # ================================================= #

Some files were not shown because too many files have changed in this diff Show More