django-vue3-admin-backend/dvadmin/system/migrations/0001_initial.py
2025-10-20 21:30:27 +08:00

575 lines
52 KiB
Python

# Generated by Django 4.2.14 on 2025-10-16 01:27
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
import django.utils.timezone
import dvadmin.system.models
class Migration(migrations.Migration):
initial = True
dependencies = [
('auth', '0012_alter_user_first_name_max_length'),
]
operations = [
migrations.CreateModel(
name='Users',
fields=[
('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=150, 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')),
('id', models.BigAutoField(help_text='Id', primary_key=True, serialize=False, verbose_name='Id')),
('description', models.CharField(blank=True, help_text='描述', max_length=255, null=True, verbose_name='描述')),
('modifier', models.CharField(blank=True, help_text='修改人', max_length=255, null=True, verbose_name='修改人')),
('dept_belong_id', models.CharField(blank=True, help_text='数据归属部门', max_length=255, null=True, verbose_name='数据归属部门')),
('update_datetime', models.DateTimeField(auto_now=True, help_text='修改时间', null=True, verbose_name='修改时间')),
('create_datetime', models.DateTimeField(auto_now_add=True, help_text='创建时间', null=True, verbose_name='创建时间')),
('username', models.CharField(db_index=True, help_text='用户账号', max_length=150, unique=True, verbose_name='用户账号')),
('email', models.EmailField(blank=True, help_text='邮箱', max_length=255, null=True, verbose_name='邮箱')),
('mobile', models.CharField(blank=True, help_text='电话', max_length=255, null=True, verbose_name='电话')),
('avatar', models.CharField(blank=True, help_text='头像', max_length=255, null=True, verbose_name='头像')),
('name', models.CharField(help_text='姓名', max_length=40, verbose_name='姓名')),
('gender', models.IntegerField(blank=True, choices=[(0, '未知'), (1, ''), (2, '')], default=0, help_text='性别', null=True, verbose_name='性别')),
('user_type', models.IntegerField(blank=True, choices=[(0, '后台用户'), (1, '前台用户')], default=0, help_text='用户类型', null=True, verbose_name='用户类型')),
('login_error_count', models.IntegerField(default=0, help_text='登录错误次数', verbose_name='登录错误次数')),
('pwd_change_count', models.IntegerField(blank=True, default=0, help_text='密码修改次数', verbose_name='密码修改次数')),
('creator', models.ForeignKey(db_constraint=False, help_text='创建人', 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': '用户表',
'db_table': 'dvadmin_system_users',
'ordering': ('-create_datetime',),
},
managers=[
('objects', dvadmin.system.models.CustomUserManager()),
],
),
migrations.CreateModel(
name='Dept',
fields=[
('id', models.BigAutoField(help_text='Id', primary_key=True, serialize=False, verbose_name='Id')),
('description', models.CharField(blank=True, help_text='描述', max_length=255, null=True, verbose_name='描述')),
('modifier', models.CharField(blank=True, help_text='修改人', max_length=255, null=True, verbose_name='修改人')),
('dept_belong_id', models.CharField(blank=True, help_text='数据归属部门', max_length=255, null=True, verbose_name='数据归属部门')),
('update_datetime', models.DateTimeField(auto_now=True, help_text='修改时间', null=True, verbose_name='修改时间')),
('create_datetime', models.DateTimeField(auto_now_add=True, help_text='创建时间', null=True, verbose_name='创建时间')),
('name', models.CharField(help_text='部门名称', max_length=64, verbose_name='部门名称')),
('key', models.CharField(blank=True, help_text='关联字符', max_length=64, null=True, unique=True, verbose_name='关联字符')),
('sort', models.IntegerField(default=1, help_text='显示排序', verbose_name='显示排序')),
('owner', models.CharField(blank=True, help_text='负责人', max_length=32, null=True, verbose_name='负责人')),
('phone', models.CharField(blank=True, help_text='联系电话', max_length=32, null=True, verbose_name='联系电话')),
('email', models.EmailField(blank=True, help_text='邮箱', max_length=32, null=True, verbose_name='邮箱')),
('status', models.BooleanField(blank=True, default=True, help_text='部门状态', null=True, verbose_name='部门状态')),
('creator', models.ForeignKey(db_constraint=False, help_text='创建人', null=True, on_delete=django.db.models.deletion.SET_NULL, related_query_name='creator_query', to=settings.AUTH_USER_MODEL, verbose_name='创建人')),
('parent', models.ForeignKey(blank=True, db_constraint=False, default=None, help_text='上级部门', null=True, on_delete=django.db.models.deletion.CASCADE, to='system.dept', verbose_name='上级部门')),
],
options={
'verbose_name': '部门表',
'verbose_name_plural': '部门表',
'db_table': 'dvadmin_system_dept',
'ordering': ('sort',),
},
),
migrations.CreateModel(
name='Menu',
fields=[
('id', models.BigAutoField(help_text='Id', primary_key=True, serialize=False, verbose_name='Id')),
('description', models.CharField(blank=True, help_text='描述', max_length=255, null=True, verbose_name='描述')),
('modifier', models.CharField(blank=True, help_text='修改人', max_length=255, null=True, verbose_name='修改人')),
('dept_belong_id', models.CharField(blank=True, help_text='数据归属部门', max_length=255, null=True, verbose_name='数据归属部门')),
('update_datetime', models.DateTimeField(auto_now=True, help_text='修改时间', null=True, verbose_name='修改时间')),
('create_datetime', models.DateTimeField(auto_now_add=True, help_text='创建时间', null=True, verbose_name='创建时间')),
('icon', models.CharField(blank=True, help_text='菜单图标', max_length=64, null=True, verbose_name='菜单图标')),
('name', models.CharField(help_text='菜单名称', max_length=64, verbose_name='菜单名称')),
('sort', models.IntegerField(blank=True, default=1, help_text='显示排序', null=True, verbose_name='显示排序')),
('is_link', models.BooleanField(default=False, help_text='是否外链', verbose_name='是否外链')),
('link_url', models.CharField(blank=True, help_text='链接地址', max_length=255, null=True, verbose_name='链接地址')),
('is_catalog', models.BooleanField(default=False, help_text='是否目录', verbose_name='是否目录')),
('web_path', models.CharField(blank=True, help_text='路由地址', max_length=128, null=True, verbose_name='路由地址')),
('component', models.CharField(blank=True, help_text='组件地址', max_length=128, null=True, verbose_name='组件地址')),
('component_name', models.CharField(blank=True, help_text='组件名称', max_length=50, null=True, verbose_name='组件名称')),
('status', models.BooleanField(blank=True, default=True, help_text='菜单状态', verbose_name='菜单状态')),
('cache', models.BooleanField(blank=True, default=False, help_text='是否页面缓存', verbose_name='是否页面缓存')),
('visible', models.BooleanField(blank=True, default=True, help_text='侧边栏中是否显示', verbose_name='侧边栏中是否显示')),
('is_iframe', models.BooleanField(blank=True, default=False, help_text='框架外显示', verbose_name='框架外显示')),
('is_affix', models.BooleanField(blank=True, default=False, help_text='是否固定', verbose_name='是否固定')),
('creator', models.ForeignKey(db_constraint=False, help_text='创建人', null=True, on_delete=django.db.models.deletion.SET_NULL, related_query_name='creator_query', to=settings.AUTH_USER_MODEL, verbose_name='创建人')),
('parent', models.ForeignKey(blank=True, db_constraint=False, help_text='上级菜单', null=True, on_delete=django.db.models.deletion.CASCADE, to='system.menu', verbose_name='上级菜单')),
],
options={
'verbose_name': '菜单表',
'verbose_name_plural': '菜单表',
'db_table': 'dvadmin_system_menu',
'ordering': ('sort',),
},
),
migrations.CreateModel(
name='MenuButton',
fields=[
('id', models.BigAutoField(help_text='Id', primary_key=True, serialize=False, verbose_name='Id')),
('description', models.CharField(blank=True, help_text='描述', max_length=255, null=True, verbose_name='描述')),
('modifier', models.CharField(blank=True, help_text='修改人', max_length=255, null=True, verbose_name='修改人')),
('dept_belong_id', models.CharField(blank=True, help_text='数据归属部门', max_length=255, null=True, verbose_name='数据归属部门')),
('update_datetime', models.DateTimeField(auto_now=True, help_text='修改时间', null=True, verbose_name='修改时间')),
('create_datetime', models.DateTimeField(auto_now_add=True, help_text='创建时间', null=True, verbose_name='创建时间')),
('name', models.CharField(help_text='名称', max_length=64, verbose_name='名称')),
('value', models.CharField(help_text='权限值', max_length=64, unique=True, verbose_name='权限值')),
('api', models.CharField(help_text='接口地址', max_length=200, verbose_name='接口地址')),
('method', models.IntegerField(blank=True, default=0, help_text='接口请求方法', null=True, verbose_name='接口请求方法')),
('creator', models.ForeignKey(db_constraint=False, help_text='创建人', null=True, on_delete=django.db.models.deletion.SET_NULL, related_query_name='creator_query', to=settings.AUTH_USER_MODEL, verbose_name='创建人')),
('menu', models.ForeignKey(db_constraint=False, help_text='关联菜单', on_delete=django.db.models.deletion.CASCADE, related_name='menuPermission', to='system.menu', verbose_name='关联菜单')),
],
options={
'verbose_name': '菜单权限表',
'verbose_name_plural': '菜单权限表',
'db_table': 'dvadmin_system_menu_button',
'ordering': ('-name',),
},
),
migrations.CreateModel(
name='MessageCenter',
fields=[
('id', models.BigAutoField(help_text='Id', primary_key=True, serialize=False, verbose_name='Id')),
('description', models.CharField(blank=True, help_text='描述', max_length=255, null=True, verbose_name='描述')),
('modifier', models.CharField(blank=True, help_text='修改人', max_length=255, null=True, verbose_name='修改人')),
('dept_belong_id', models.CharField(blank=True, help_text='数据归属部门', max_length=255, null=True, verbose_name='数据归属部门')),
('update_datetime', models.DateTimeField(auto_now=True, help_text='修改时间', null=True, verbose_name='修改时间')),
('create_datetime', models.DateTimeField(auto_now_add=True, help_text='创建时间', null=True, verbose_name='创建时间')),
('title', models.CharField(help_text='标题', max_length=100, verbose_name='标题')),
('content', models.TextField(help_text='内容', verbose_name='内容')),
('target_type', models.IntegerField(default=0, help_text='目标类型', verbose_name='目标类型')),
('creator', models.ForeignKey(db_constraint=False, help_text='创建人', null=True, on_delete=django.db.models.deletion.SET_NULL, related_query_name='creator_query', to=settings.AUTH_USER_MODEL, verbose_name='创建人')),
('target_dept', models.ManyToManyField(blank=True, db_constraint=False, help_text='目标部门', to='system.dept', verbose_name='目标部门')),
],
options={
'verbose_name': '消息中心',
'verbose_name_plural': '消息中心',
'db_table': 'dvadmin_message_center',
'ordering': ('-create_datetime',),
},
),
migrations.CreateModel(
name='Role',
fields=[
('id', models.BigAutoField(help_text='Id', primary_key=True, serialize=False, verbose_name='Id')),
('description', models.CharField(blank=True, help_text='描述', max_length=255, null=True, verbose_name='描述')),
('modifier', models.CharField(blank=True, help_text='修改人', max_length=255, null=True, verbose_name='修改人')),
('dept_belong_id', models.CharField(blank=True, help_text='数据归属部门', max_length=255, null=True, verbose_name='数据归属部门')),
('update_datetime', models.DateTimeField(auto_now=True, help_text='修改时间', null=True, verbose_name='修改时间')),
('create_datetime', models.DateTimeField(auto_now_add=True, help_text='创建时间', null=True, verbose_name='创建时间')),
('name', models.CharField(help_text='角色名称', max_length=64, verbose_name='角色名称')),
('key', models.CharField(help_text='权限字符', max_length=64, unique=True, verbose_name='权限字符')),
('sort', models.IntegerField(default=1, help_text='角色顺序', verbose_name='角色顺序')),
('status', models.BooleanField(default=True, help_text='角色状态', verbose_name='角色状态')),
('creator', models.ForeignKey(db_constraint=False, help_text='创建人', 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': '角色表',
'db_table': 'dvadmin_system_role',
'ordering': ('sort',),
},
),
migrations.CreateModel(
name='RoleMenuPermission',
fields=[
('id', models.BigAutoField(help_text='Id', primary_key=True, serialize=False, verbose_name='Id')),
('description', models.CharField(blank=True, help_text='描述', max_length=255, null=True, verbose_name='描述')),
('modifier', models.CharField(blank=True, help_text='修改人', max_length=255, null=True, verbose_name='修改人')),
('dept_belong_id', models.CharField(blank=True, help_text='数据归属部门', max_length=255, null=True, verbose_name='数据归属部门')),
('update_datetime', models.DateTimeField(auto_now=True, help_text='修改时间', null=True, verbose_name='修改时间')),
('create_datetime', models.DateTimeField(auto_now_add=True, help_text='创建时间', null=True, verbose_name='创建时间')),
('creator', models.ForeignKey(db_constraint=False, help_text='创建人', null=True, on_delete=django.db.models.deletion.SET_NULL, related_query_name='creator_query', to=settings.AUTH_USER_MODEL, verbose_name='创建人')),
('menu', models.ForeignKey(db_constraint=False, help_text='关联菜单', on_delete=django.db.models.deletion.CASCADE, related_name='role_menu', to='system.menu', verbose_name='关联菜单')),
('role', models.ForeignKey(db_constraint=False, help_text='关联角色', on_delete=django.db.models.deletion.CASCADE, related_name='role_menu', to='system.role', verbose_name='关联角色')),
],
options={
'verbose_name': '角色菜单权限表',
'verbose_name_plural': '角色菜单权限表',
'db_table': 'dvadmin_role_menu_permission',
},
),
migrations.CreateModel(
name='RoleMenuButtonPermission',
fields=[
('id', models.BigAutoField(help_text='Id', primary_key=True, serialize=False, verbose_name='Id')),
('description', models.CharField(blank=True, help_text='描述', max_length=255, null=True, verbose_name='描述')),
('modifier', models.CharField(blank=True, help_text='修改人', max_length=255, null=True, verbose_name='修改人')),
('dept_belong_id', models.CharField(blank=True, help_text='数据归属部门', max_length=255, null=True, verbose_name='数据归属部门')),
('update_datetime', models.DateTimeField(auto_now=True, help_text='修改时间', null=True, verbose_name='修改时间')),
('create_datetime', models.DateTimeField(auto_now_add=True, help_text='创建时间', null=True, verbose_name='创建时间')),
('data_range', models.IntegerField(choices=[(0, '仅本人数据权限'), (1, '本部门及以下数据权限'), (2, '本部门数据权限'), (3, '全部数据权限'), (4, '自定数据权限')], default=0, help_text='数据权限范围', verbose_name='数据权限范围')),
('creator', models.ForeignKey(db_constraint=False, help_text='创建人', 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(blank=True, db_constraint=False, help_text='数据权限-关联部门', to='system.dept', verbose_name='数据权限-关联部门')),
('menu_button', models.ForeignKey(blank=True, db_constraint=False, help_text='关联菜单按钮', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='menu_button_permission', to='system.menubutton', verbose_name='关联菜单按钮')),
('role', models.ForeignKey(db_constraint=False, help_text='关联角色', on_delete=django.db.models.deletion.CASCADE, related_name='role_menu_button', to='system.role', verbose_name='关联角色')),
],
options={
'verbose_name': '角色按钮权限表',
'verbose_name_plural': '角色按钮权限表',
'db_table': 'dvadmin_role_menu_button_permission',
'ordering': ('-create_datetime',),
},
),
migrations.CreateModel(
name='Post',
fields=[
('id', models.BigAutoField(help_text='Id', primary_key=True, serialize=False, verbose_name='Id')),
('description', models.CharField(blank=True, help_text='描述', max_length=255, null=True, verbose_name='描述')),
('modifier', models.CharField(blank=True, help_text='修改人', max_length=255, null=True, verbose_name='修改人')),
('dept_belong_id', models.CharField(blank=True, help_text='数据归属部门', max_length=255, null=True, verbose_name='数据归属部门')),
('update_datetime', models.DateTimeField(auto_now=True, help_text='修改时间', null=True, verbose_name='修改时间')),
('create_datetime', models.DateTimeField(auto_now_add=True, help_text='创建时间', null=True, verbose_name='创建时间')),
('name', models.CharField(help_text='岗位名称', max_length=64, verbose_name='岗位名称')),
('code', models.CharField(help_text='岗位编码', max_length=32, verbose_name='岗位编码')),
('sort', models.IntegerField(default=1, help_text='岗位顺序', verbose_name='岗位顺序')),
('status', models.IntegerField(choices=[(0, '离职'), (1, '在职')], default=1, help_text='岗位状态', verbose_name='岗位状态')),
('creator', models.ForeignKey(db_constraint=False, help_text='创建人', 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': '岗位表',
'db_table': 'dvadmin_system_post',
'ordering': ('sort',),
},
),
migrations.CreateModel(
name='OperationLog',
fields=[
('id', models.BigAutoField(help_text='Id', primary_key=True, serialize=False, verbose_name='Id')),
('description', models.CharField(blank=True, help_text='描述', max_length=255, null=True, verbose_name='描述')),
('modifier', models.CharField(blank=True, help_text='修改人', max_length=255, null=True, verbose_name='修改人')),
('dept_belong_id', models.CharField(blank=True, help_text='数据归属部门', max_length=255, null=True, verbose_name='数据归属部门')),
('update_datetime', models.DateTimeField(auto_now=True, help_text='修改时间', null=True, verbose_name='修改时间')),
('create_datetime', models.DateTimeField(auto_now_add=True, help_text='创建时间', null=True, verbose_name='创建时间')),
('request_modular', models.CharField(blank=True, help_text='请求模块', max_length=64, null=True, verbose_name='请求模块')),
('request_path', models.CharField(blank=True, help_text='请求地址', max_length=400, null=True, verbose_name='请求地址')),
('request_body', models.TextField(blank=True, help_text='请求参数', null=True, verbose_name='请求参数')),
('request_method', models.CharField(blank=True, help_text='请求方式', max_length=8, null=True, verbose_name='请求方式')),
('request_msg', models.TextField(blank=True, help_text='操作说明', null=True, verbose_name='操作说明')),
('request_ip', models.CharField(blank=True, help_text='请求ip地址', max_length=32, null=True, verbose_name='请求ip地址')),
('request_browser', models.CharField(blank=True, help_text='请求浏览器', max_length=64, null=True, verbose_name='请求浏览器')),
('response_code', models.CharField(blank=True, help_text='响应状态码', max_length=32, null=True, verbose_name='响应状态码')),
('request_os', models.CharField(blank=True, help_text='操作系统', max_length=64, null=True, verbose_name='操作系统')),
('json_result', models.TextField(blank=True, help_text='返回信息', null=True, verbose_name='返回信息')),
('status', models.BooleanField(default=False, help_text='响应状态', verbose_name='响应状态')),
('creator', models.ForeignKey(db_constraint=False, help_text='创建人', 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': '操作日志',
'db_table': 'dvadmin_system_operation_log',
'ordering': ('-create_datetime',),
},
),
migrations.CreateModel(
name='MessageCenterTargetUser',
fields=[
('id', models.BigAutoField(help_text='Id', primary_key=True, serialize=False, verbose_name='Id')),
('description', models.CharField(blank=True, help_text='描述', max_length=255, null=True, verbose_name='描述')),
('modifier', models.CharField(blank=True, help_text='修改人', max_length=255, null=True, verbose_name='修改人')),
('dept_belong_id', models.CharField(blank=True, help_text='数据归属部门', max_length=255, null=True, verbose_name='数据归属部门')),
('update_datetime', models.DateTimeField(auto_now=True, help_text='修改时间', null=True, verbose_name='修改时间')),
('create_datetime', models.DateTimeField(auto_now_add=True, help_text='创建时间', null=True, verbose_name='创建时间')),
('is_read', models.BooleanField(blank=True, default=False, help_text='是否已读', null=True, verbose_name='是否已读')),
('creator', models.ForeignKey(db_constraint=False, help_text='创建人', null=True, on_delete=django.db.models.deletion.SET_NULL, related_query_name='creator_query', to=settings.AUTH_USER_MODEL, verbose_name='创建人')),
('messagecenter', models.ForeignKey(db_constraint=False, help_text='关联消息中心表', on_delete=django.db.models.deletion.CASCADE, to='system.messagecenter', verbose_name='关联消息中心表')),
('users', models.ForeignKey(db_constraint=False, help_text='关联用户表', on_delete=django.db.models.deletion.CASCADE, related_name='target_user', to=settings.AUTH_USER_MODEL, verbose_name='关联用户表')),
],
options={
'verbose_name': '消息中心目标用户表',
'verbose_name_plural': '消息中心目标用户表',
'db_table': 'dvadmin_message_center_target_user',
},
),
migrations.AddField(
model_name='messagecenter',
name='target_role',
field=models.ManyToManyField(blank=True, db_constraint=False, help_text='目标角色', to='system.role', verbose_name='目标角色'),
),
migrations.AddField(
model_name='messagecenter',
name='target_user',
field=models.ManyToManyField(blank=True, help_text='目标用户', related_name='user', through='system.MessageCenterTargetUser', to=settings.AUTH_USER_MODEL, verbose_name='目标用户'),
),
migrations.CreateModel(
name='MenuField',
fields=[
('id', models.BigAutoField(help_text='Id', primary_key=True, serialize=False, verbose_name='Id')),
('description', models.CharField(blank=True, help_text='描述', max_length=255, null=True, verbose_name='描述')),
('modifier', models.CharField(blank=True, help_text='修改人', max_length=255, null=True, verbose_name='修改人')),
('dept_belong_id', models.CharField(blank=True, help_text='数据归属部门', max_length=255, null=True, verbose_name='数据归属部门')),
('update_datetime', models.DateTimeField(auto_now=True, help_text='修改时间', null=True, verbose_name='修改时间')),
('create_datetime', models.DateTimeField(auto_now_add=True, help_text='创建时间', null=True, verbose_name='创建时间')),
('model', models.CharField(max_length=64, verbose_name='表名')),
('field_name', models.CharField(max_length=64, verbose_name='模型表字段名')),
('title', models.CharField(max_length=64, verbose_name='字段显示名')),
('creator', models.ForeignKey(db_constraint=False, help_text='创建人', null=True, on_delete=django.db.models.deletion.SET_NULL, related_query_name='creator_query', to=settings.AUTH_USER_MODEL, verbose_name='创建人')),
('menu', models.ForeignKey(db_constraint=False, on_delete=django.db.models.deletion.CASCADE, to='system.menu', verbose_name='菜单')),
],
options={
'verbose_name': '菜单字段表',
'verbose_name_plural': '菜单字段表',
'db_table': 'dvadmin_system_menu_field',
'ordering': ('id',),
},
),
migrations.CreateModel(
name='LoginLog',
fields=[
('id', models.BigAutoField(help_text='Id', primary_key=True, serialize=False, verbose_name='Id')),
('description', models.CharField(blank=True, help_text='描述', max_length=255, null=True, verbose_name='描述')),
('modifier', models.CharField(blank=True, help_text='修改人', max_length=255, null=True, verbose_name='修改人')),
('dept_belong_id', models.CharField(blank=True, help_text='数据归属部门', max_length=255, null=True, verbose_name='数据归属部门')),
('update_datetime', models.DateTimeField(auto_now=True, help_text='修改时间', null=True, verbose_name='修改时间')),
('create_datetime', models.DateTimeField(auto_now_add=True, help_text='创建时间', null=True, verbose_name='创建时间')),
('username', models.CharField(blank=True, help_text='登录用户名', max_length=32, null=True, verbose_name='登录用户名')),
('ip', models.CharField(blank=True, help_text='登录ip', max_length=32, null=True, verbose_name='登录ip')),
('agent', models.TextField(blank=True, help_text='agent信息', null=True, verbose_name='agent信息')),
('browser', models.CharField(blank=True, help_text='浏览器名', max_length=200, null=True, verbose_name='浏览器名')),
('os', models.CharField(blank=True, help_text='操作系统', max_length=200, null=True, verbose_name='操作系统')),
('continent', models.CharField(blank=True, help_text='', max_length=50, null=True, verbose_name='')),
('country', models.CharField(blank=True, help_text='国家', max_length=50, null=True, verbose_name='国家')),
('province', models.CharField(blank=True, help_text='省份', max_length=50, null=True, verbose_name='省份')),
('city', models.CharField(blank=True, help_text='城市', max_length=50, null=True, verbose_name='城市')),
('district', models.CharField(blank=True, help_text='县区', max_length=50, null=True, verbose_name='县区')),
('isp', models.CharField(blank=True, help_text='运营商', max_length=50, null=True, verbose_name='运营商')),
('area_code', models.CharField(blank=True, help_text='区域代码', max_length=50, null=True, verbose_name='区域代码')),
('country_english', models.CharField(blank=True, help_text='英文全称', max_length=50, null=True, verbose_name='英文全称')),
('country_code', models.CharField(blank=True, help_text='简称', max_length=50, null=True, verbose_name='简称')),
('longitude', models.CharField(blank=True, help_text='经度', max_length=50, null=True, verbose_name='经度')),
('latitude', models.CharField(blank=True, help_text='纬度', max_length=50, null=True, verbose_name='纬度')),
('login_type', models.IntegerField(choices=[(1, '普通登录'), (2, '微信扫码登录')], default=1, help_text='登录类型', verbose_name='登录类型')),
('creator', models.ForeignKey(db_constraint=False, help_text='创建人', 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': '登录日志',
'db_table': 'dvadmin_system_login_log',
'ordering': ('-create_datetime',),
},
),
migrations.CreateModel(
name='FileList',
fields=[
('id', models.BigAutoField(help_text='Id', primary_key=True, serialize=False, verbose_name='Id')),
('description', models.CharField(blank=True, help_text='描述', max_length=255, null=True, verbose_name='描述')),
('modifier', models.CharField(blank=True, help_text='修改人', max_length=255, null=True, verbose_name='修改人')),
('dept_belong_id', models.CharField(blank=True, help_text='数据归属部门', max_length=255, null=True, verbose_name='数据归属部门')),
('update_datetime', models.DateTimeField(auto_now=True, help_text='修改时间', null=True, verbose_name='修改时间')),
('create_datetime', models.DateTimeField(auto_now_add=True, help_text='创建时间', null=True, verbose_name='创建时间')),
('name', models.CharField(blank=True, help_text='名称', max_length=200, null=True, verbose_name='名称')),
('url', models.FileField(blank=True, null=True, upload_to=dvadmin.system.models.media_file_name)),
('file_url', models.CharField(blank=True, help_text='文件地址', max_length=255, verbose_name='文件地址')),
('engine', models.CharField(blank=True, default='local', help_text='引擎', max_length=100, verbose_name='引擎')),
('mime_type', models.CharField(blank=True, help_text='Mime类型', max_length=100, verbose_name='Mime类型')),
('size', models.CharField(blank=True, help_text='文件大小', max_length=36, verbose_name='文件大小')),
('md5sum', models.CharField(blank=True, help_text='文件md5', max_length=36, verbose_name='文件md5')),
('upload_method', models.SmallIntegerField(blank=True, choices=[(0, '默认上传'), (1, '文件选择器上传')], default=0, help_text='上传方式', null=True, verbose_name='上传方式')),
('file_type', models.SmallIntegerField(blank=True, choices=[(0, '图片'), (1, '视频'), (2, '音频'), (3, '其他')], default=3, help_text='文件类型', null=True, verbose_name='文件类型')),
('creator', models.ForeignKey(db_constraint=False, help_text='创建人', 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': '文件管理',
'db_table': 'dvadmin_system_file_list',
'ordering': ('-create_datetime',),
},
),
migrations.CreateModel(
name='FieldPermission',
fields=[
('id', models.BigAutoField(help_text='Id', primary_key=True, serialize=False, verbose_name='Id')),
('description', models.CharField(blank=True, help_text='描述', max_length=255, null=True, verbose_name='描述')),
('modifier', models.CharField(blank=True, help_text='修改人', max_length=255, null=True, verbose_name='修改人')),
('dept_belong_id', models.CharField(blank=True, help_text='数据归属部门', max_length=255, null=True, verbose_name='数据归属部门')),
('update_datetime', models.DateTimeField(auto_now=True, help_text='修改时间', null=True, verbose_name='修改时间')),
('create_datetime', models.DateTimeField(auto_now_add=True, help_text='创建时间', null=True, verbose_name='创建时间')),
('is_query', models.BooleanField(default=1, verbose_name='是否可查询')),
('is_create', models.BooleanField(default=1, verbose_name='是否可创建')),
('is_update', models.BooleanField(default=1, verbose_name='是否可更新')),
('creator', models.ForeignKey(db_constraint=False, help_text='创建人', null=True, on_delete=django.db.models.deletion.SET_NULL, related_query_name='creator_query', to=settings.AUTH_USER_MODEL, verbose_name='创建人')),
('field', models.ForeignKey(db_constraint=False, on_delete=django.db.models.deletion.CASCADE, related_name='menu_field', to='system.menufield', verbose_name='字段')),
('role', models.ForeignKey(db_constraint=False, on_delete=django.db.models.deletion.CASCADE, to='system.role', verbose_name='角色')),
],
options={
'verbose_name': '字段权限表',
'verbose_name_plural': '字段权限表',
'db_table': 'dvadmin_system_field_permission',
'ordering': ('id',),
},
),
migrations.CreateModel(
name='DownloadCenter',
fields=[
('id', models.BigAutoField(help_text='Id', primary_key=True, serialize=False, verbose_name='Id')),
('description', models.CharField(blank=True, help_text='描述', max_length=255, null=True, verbose_name='描述')),
('modifier', models.CharField(blank=True, help_text='修改人', max_length=255, null=True, verbose_name='修改人')),
('dept_belong_id', models.CharField(blank=True, help_text='数据归属部门', max_length=255, null=True, verbose_name='数据归属部门')),
('update_datetime', models.DateTimeField(auto_now=True, help_text='修改时间', null=True, verbose_name='修改时间')),
('create_datetime', models.DateTimeField(auto_now_add=True, help_text='创建时间', null=True, verbose_name='创建时间')),
('task_name', models.CharField(help_text='任务名称', max_length=255, verbose_name='任务名称')),
('task_status', models.SmallIntegerField(choices=[(0, '任务已创建'), (1, '任务进行中'), (2, '任务完成'), (3, '任务失败')], default=0, help_text='是否可下载', verbose_name='是否可下载')),
('file_name', models.CharField(blank=True, help_text='文件名', max_length=255, null=True, verbose_name='文件名')),
('url', models.FileField(blank=True, null=True, upload_to=dvadmin.system.models.media_file_name_downloadcenter)),
('size', models.BigIntegerField(default=0, help_text='文件大小', verbose_name='文件大小')),
('md5sum', models.CharField(blank=True, help_text='文件md5', max_length=36, null=True, verbose_name='文件md5')),
('creator', models.ForeignKey(db_constraint=False, help_text='创建人', 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': '下载中心',
'db_table': 'dvadmin_download_center',
'ordering': ('-create_datetime',),
},
),
migrations.CreateModel(
name='Dictionary',
fields=[
('id', models.BigAutoField(help_text='Id', primary_key=True, serialize=False, verbose_name='Id')),
('description', models.CharField(blank=True, help_text='描述', max_length=255, null=True, verbose_name='描述')),
('modifier', models.CharField(blank=True, help_text='修改人', max_length=255, null=True, verbose_name='修改人')),
('dept_belong_id', models.CharField(blank=True, help_text='数据归属部门', max_length=255, null=True, verbose_name='数据归属部门')),
('update_datetime', models.DateTimeField(auto_now=True, help_text='修改时间', null=True, verbose_name='修改时间')),
('create_datetime', models.DateTimeField(auto_now_add=True, help_text='创建时间', null=True, verbose_name='创建时间')),
('label', models.CharField(blank=True, help_text='字典名称', max_length=100, null=True, verbose_name='字典名称')),
('value', models.CharField(blank=True, help_text='字典编号/实际值', max_length=200, null=True, verbose_name='字典编号')),
('type', models.IntegerField(choices=[(0, 'text'), (1, 'number'), (2, 'date'), (3, 'datetime'), (4, 'time'), (5, 'files'), (6, 'boolean'), (7, 'images')], default=0, help_text='数据值类型', verbose_name='数据值类型')),
('color', models.CharField(blank=True, help_text='颜色', max_length=20, null=True, verbose_name='颜色')),
('is_value', models.BooleanField(default=False, help_text='是否为value值,用来做具体值存放', verbose_name='是否为value值')),
('status', models.BooleanField(default=True, help_text='状态', verbose_name='状态')),
('sort', models.IntegerField(blank=True, default=1, help_text='显示排序', null=True, verbose_name='显示排序')),
('remark', models.CharField(blank=True, help_text='备注', max_length=2000, null=True, verbose_name='备注')),
('creator', models.ForeignKey(db_constraint=False, help_text='创建人', null=True, on_delete=django.db.models.deletion.SET_NULL, related_query_name='creator_query', to=settings.AUTH_USER_MODEL, verbose_name='创建人')),
('parent', models.ForeignKey(blank=True, db_constraint=False, help_text='父级', null=True, on_delete=django.db.models.deletion.PROTECT, related_name='sublist', to='system.dictionary', verbose_name='父级')),
],
options={
'verbose_name': '字典表',
'verbose_name_plural': '字典表',
'db_table': 'dvadmin_system_dictionary',
'ordering': ('sort',),
},
),
migrations.CreateModel(
name='Area',
fields=[
('id', models.BigAutoField(help_text='Id', primary_key=True, serialize=False, verbose_name='Id')),
('description', models.CharField(blank=True, help_text='描述', max_length=255, null=True, verbose_name='描述')),
('modifier', models.CharField(blank=True, help_text='修改人', max_length=255, null=True, verbose_name='修改人')),
('dept_belong_id', models.CharField(blank=True, help_text='数据归属部门', max_length=255, null=True, verbose_name='数据归属部门')),
('update_datetime', models.DateTimeField(auto_now=True, help_text='修改时间', null=True, verbose_name='修改时间')),
('create_datetime', models.DateTimeField(auto_now_add=True, help_text='创建时间', null=True, verbose_name='创建时间')),
('name', models.CharField(help_text='名称', max_length=100, verbose_name='名称')),
('code', models.CharField(db_index=True, help_text='地区编码', max_length=20, unique=True, verbose_name='地区编码')),
('level', models.BigIntegerField(help_text='地区层级(1省份 2城市 3区县 4乡级)', verbose_name='地区层级(1省份 2城市 3区县 4乡级)')),
('pinyin', models.CharField(help_text='拼音', max_length=255, verbose_name='拼音')),
('initials', models.CharField(help_text='首字母', max_length=20, verbose_name='首字母')),
('enable', models.BooleanField(default=True, help_text='是否启用', verbose_name='是否启用')),
('creator', models.ForeignKey(db_constraint=False, help_text='创建人', null=True, on_delete=django.db.models.deletion.SET_NULL, related_query_name='creator_query', to=settings.AUTH_USER_MODEL, verbose_name='创建人')),
('pcode', models.ForeignKey(blank=True, db_constraint=False, help_text='父地区编码', null=True, on_delete=django.db.models.deletion.CASCADE, to='system.area', to_field='code', verbose_name='父地区编码')),
],
options={
'verbose_name': '地区表',
'verbose_name_plural': '地区表',
'db_table': 'dvadmin_system_area',
'ordering': ('code',),
},
),
migrations.CreateModel(
name='ApiWhiteList',
fields=[
('id', models.BigAutoField(help_text='Id', primary_key=True, serialize=False, verbose_name='Id')),
('description', models.CharField(blank=True, help_text='描述', max_length=255, null=True, verbose_name='描述')),
('modifier', models.CharField(blank=True, help_text='修改人', max_length=255, null=True, verbose_name='修改人')),
('dept_belong_id', models.CharField(blank=True, help_text='数据归属部门', max_length=255, null=True, verbose_name='数据归属部门')),
('update_datetime', models.DateTimeField(auto_now=True, help_text='修改时间', null=True, verbose_name='修改时间')),
('create_datetime', models.DateTimeField(auto_now_add=True, help_text='创建时间', null=True, verbose_name='创建时间')),
('url', models.CharField(help_text='url地址', max_length=200, verbose_name='url')),
('method', models.IntegerField(blank=True, default=0, help_text='接口请求方法', null=True, verbose_name='接口请求方法')),
('enable_datasource', models.BooleanField(blank=True, default=True, help_text='激活数据权限', verbose_name='激活数据权限')),
('creator', models.ForeignKey(db_constraint=False, help_text='创建人', 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': '接口白名单',
'db_table': 'dvadmin_api_white_list',
'ordering': ('-create_datetime',),
},
),
migrations.AddField(
model_name='users',
name='current_role',
field=models.ForeignKey(blank=True, db_constraint=False, help_text='当前登录角色', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='current_role_set', to='system.role', verbose_name='当前登录角色'),
),
migrations.AddField(
model_name='users',
name='dept',
field=models.ForeignKey(blank=True, db_constraint=False, help_text='关联部门', null=True, on_delete=django.db.models.deletion.PROTECT, to='system.dept', verbose_name='所属部门'),
),
migrations.AddField(
model_name='users',
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='users',
name='manage_dept',
field=models.ManyToManyField(blank=True, db_constraint=False, help_text='管理部门', related_name='manage_dept_set', to='system.dept', verbose_name='管理部门'),
),
migrations.AddField(
model_name='users',
name='post',
field=models.ManyToManyField(blank=True, db_constraint=False, help_text='关联岗位', to='system.post', verbose_name='关联岗位'),
),
migrations.AddField(
model_name='users',
name='role',
field=models.ManyToManyField(blank=True, db_constraint=False, help_text='关联角色', to='system.role', verbose_name='关联角色'),
),
migrations.AddField(
model_name='users',
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'),
),
migrations.CreateModel(
name='SystemConfig',
fields=[
('id', models.BigAutoField(help_text='Id', primary_key=True, serialize=False, verbose_name='Id')),
('description', models.CharField(blank=True, help_text='描述', max_length=255, null=True, verbose_name='描述')),
('modifier', models.CharField(blank=True, help_text='修改人', max_length=255, null=True, verbose_name='修改人')),
('dept_belong_id', models.CharField(blank=True, help_text='数据归属部门', max_length=255, null=True, verbose_name='数据归属部门')),
('update_datetime', models.DateTimeField(auto_now=True, help_text='修改时间', null=True, verbose_name='修改时间')),
('create_datetime', models.DateTimeField(auto_now_add=True, help_text='创建时间', null=True, verbose_name='创建时间')),
('title', models.CharField(help_text='标题', max_length=50, verbose_name='标题')),
('key', models.CharField(db_index=True, help_text='', max_length=100, verbose_name='')),
('value', models.JSONField(blank=True, help_text='', max_length=100, null=True, verbose_name='')),
('sort', models.IntegerField(blank=True, default=0, help_text='排序', verbose_name='排序')),
('status', models.BooleanField(default=True, help_text='启用状态', verbose_name='启用状态')),
('data_options', models.JSONField(blank=True, help_text='数据options', null=True, verbose_name='数据options')),
('form_item_type', models.IntegerField(blank=True, choices=[(0, 'text'), (1, 'datetime'), (2, 'date'), (3, 'textarea'), (4, 'select'), (5, 'checkbox'), (6, 'radio'), (7, 'img'), (8, 'file'), (9, 'switch'), (10, 'number'), (11, 'array'), (12, 'imgs'), (13, 'foreignkey'), (14, 'manytomany'), (15, 'time')], default=0, help_text='表单类型', verbose_name='表单类型')),
('rule', models.JSONField(blank=True, help_text='校验规则', null=True, verbose_name='校验规则')),
('placeholder', models.CharField(blank=True, help_text='提示信息', max_length=50, null=True, verbose_name='提示信息')),
('setting', models.JSONField(blank=True, help_text='配置', null=True, verbose_name='配置')),
('creator', models.ForeignKey(db_constraint=False, help_text='创建人', null=True, on_delete=django.db.models.deletion.SET_NULL, related_query_name='creator_query', to=settings.AUTH_USER_MODEL, verbose_name='创建人')),
('parent', models.ForeignKey(blank=True, db_constraint=False, help_text='父级', null=True, on_delete=django.db.models.deletion.CASCADE, to='system.systemconfig', verbose_name='父级')),
],
options={
'verbose_name': '系统配置表',
'verbose_name_plural': '系统配置表',
'db_table': 'dvadmin_system_config',
'ordering': ('sort',),
'unique_together': {('key', 'parent_id')},
},
),
]