init
This commit is contained in:
990
backend/system/migrations/0001_initial.py
Normal file
990
backend/system/migrations/0001_initial.py
Normal file
@@ -0,0 +1,990 @@
|
||||
# Generated by Django 5.2.1 on 2025-06-29 13:08
|
||||
|
||||
import django.contrib.auth.models
|
||||
import django.contrib.auth.validators
|
||||
import django.db.models.deletion
|
||||
import django.utils.timezone
|
||||
import utils.utils
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
initial = True
|
||||
|
||||
dependencies = [
|
||||
("auth", "0012_alter_user_first_name_max_length"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name="DictType",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.BigAutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
(
|
||||
"remark",
|
||||
models.CharField(
|
||||
blank=True,
|
||||
help_text="备注",
|
||||
max_length=256,
|
||||
null=True,
|
||||
verbose_name="备注",
|
||||
),
|
||||
),
|
||||
(
|
||||
"creator",
|
||||
models.CharField(
|
||||
blank=True,
|
||||
help_text="创建人",
|
||||
max_length=64,
|
||||
null=True,
|
||||
verbose_name="创建人",
|
||||
),
|
||||
),
|
||||
(
|
||||
"modifier",
|
||||
models.CharField(
|
||||
blank=True,
|
||||
help_text="修改人",
|
||||
max_length=64,
|
||||
null=True,
|
||||
verbose_name="修改人",
|
||||
),
|
||||
),
|
||||
(
|
||||
"update_time",
|
||||
models.DateTimeField(
|
||||
auto_now=True,
|
||||
help_text="修改时间",
|
||||
null=True,
|
||||
verbose_name="修改时间",
|
||||
),
|
||||
),
|
||||
(
|
||||
"create_time",
|
||||
models.DateTimeField(
|
||||
auto_now_add=True,
|
||||
help_text="创建时间",
|
||||
null=True,
|
||||
verbose_name="创建时间",
|
||||
),
|
||||
),
|
||||
(
|
||||
"is_deleted",
|
||||
models.BooleanField(default=False, verbose_name="是否软删除"),
|
||||
),
|
||||
(
|
||||
"name",
|
||||
models.CharField(
|
||||
default="", max_length=100, verbose_name="字典名称"
|
||||
),
|
||||
),
|
||||
(
|
||||
"type",
|
||||
models.CharField(
|
||||
db_index=True,
|
||||
default="",
|
||||
max_length=100,
|
||||
verbose_name="字典类型",
|
||||
),
|
||||
),
|
||||
("status", models.BooleanField(default=True)),
|
||||
(
|
||||
"deleted_time",
|
||||
models.DateTimeField(
|
||||
blank=True, null=True, verbose_name="删除时间"
|
||||
),
|
||||
),
|
||||
],
|
||||
options={
|
||||
"verbose_name": "字典类型",
|
||||
"verbose_name_plural": "字典类型",
|
||||
"db_table": "system_dict_type",
|
||||
"ordering": ["-id"],
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="MenuMeta",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.BigAutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
(
|
||||
"remark",
|
||||
models.CharField(
|
||||
blank=True,
|
||||
help_text="备注",
|
||||
max_length=256,
|
||||
null=True,
|
||||
verbose_name="备注",
|
||||
),
|
||||
),
|
||||
(
|
||||
"creator",
|
||||
models.CharField(
|
||||
blank=True,
|
||||
help_text="创建人",
|
||||
max_length=64,
|
||||
null=True,
|
||||
verbose_name="创建人",
|
||||
),
|
||||
),
|
||||
(
|
||||
"modifier",
|
||||
models.CharField(
|
||||
blank=True,
|
||||
help_text="修改人",
|
||||
max_length=64,
|
||||
null=True,
|
||||
verbose_name="修改人",
|
||||
),
|
||||
),
|
||||
(
|
||||
"update_time",
|
||||
models.DateTimeField(
|
||||
auto_now=True,
|
||||
help_text="修改时间",
|
||||
null=True,
|
||||
verbose_name="修改时间",
|
||||
),
|
||||
),
|
||||
(
|
||||
"create_time",
|
||||
models.DateTimeField(
|
||||
auto_now_add=True,
|
||||
help_text="创建时间",
|
||||
null=True,
|
||||
verbose_name="创建时间",
|
||||
),
|
||||
),
|
||||
(
|
||||
"is_deleted",
|
||||
models.BooleanField(default=False, verbose_name="是否软删除"),
|
||||
),
|
||||
("title", models.CharField(max_length=200, verbose_name="标题")),
|
||||
(
|
||||
"icon",
|
||||
models.CharField(blank=True, max_length=100, verbose_name="图标"),
|
||||
),
|
||||
("order", models.IntegerField(default=0, verbose_name="排序")),
|
||||
(
|
||||
"affix_tab",
|
||||
models.BooleanField(default=False, verbose_name="固定标签页"),
|
||||
),
|
||||
(
|
||||
"badge",
|
||||
models.CharField(
|
||||
blank=True, max_length=50, verbose_name="徽章文本"
|
||||
),
|
||||
),
|
||||
(
|
||||
"badge_type",
|
||||
models.CharField(
|
||||
blank=True, max_length=20, verbose_name="徽章类型"
|
||||
),
|
||||
),
|
||||
(
|
||||
"badge_variants",
|
||||
models.CharField(
|
||||
blank=True, max_length=20, verbose_name="徽章样式"
|
||||
),
|
||||
),
|
||||
("iframe_src", models.URLField(blank=True, verbose_name="内嵌页面URL")),
|
||||
("link", models.URLField(blank=True, verbose_name="外部链接")),
|
||||
],
|
||||
options={
|
||||
"verbose_name": "菜单元数据",
|
||||
"verbose_name_plural": "菜单元数据",
|
||||
"db_table": "system_menu_meta",
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="Role",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.BigAutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
(
|
||||
"creator",
|
||||
models.CharField(
|
||||
blank=True,
|
||||
help_text="创建人",
|
||||
max_length=64,
|
||||
null=True,
|
||||
verbose_name="创建人",
|
||||
),
|
||||
),
|
||||
(
|
||||
"modifier",
|
||||
models.CharField(
|
||||
blank=True,
|
||||
help_text="修改人",
|
||||
max_length=64,
|
||||
null=True,
|
||||
verbose_name="修改人",
|
||||
),
|
||||
),
|
||||
(
|
||||
"update_time",
|
||||
models.DateTimeField(
|
||||
auto_now=True,
|
||||
help_text="修改时间",
|
||||
null=True,
|
||||
verbose_name="修改时间",
|
||||
),
|
||||
),
|
||||
(
|
||||
"create_time",
|
||||
models.DateTimeField(
|
||||
auto_now_add=True,
|
||||
help_text="创建时间",
|
||||
null=True,
|
||||
verbose_name="创建时间",
|
||||
),
|
||||
),
|
||||
(
|
||||
"is_deleted",
|
||||
models.BooleanField(default=False, verbose_name="是否软删除"),
|
||||
),
|
||||
("name", models.CharField(max_length=100, verbose_name="角色名称")),
|
||||
(
|
||||
"status",
|
||||
models.IntegerField(
|
||||
choices=[(1, "启用"), (0, "禁用")],
|
||||
default=1,
|
||||
verbose_name="角色状态",
|
||||
),
|
||||
),
|
||||
(
|
||||
"sort",
|
||||
models.IntegerField(
|
||||
default=0, help_text="数值越小越靠前", verbose_name="显示排序"
|
||||
),
|
||||
),
|
||||
("remark", models.TextField(blank=True, verbose_name="备注")),
|
||||
],
|
||||
options={
|
||||
"verbose_name": "角色管理",
|
||||
"verbose_name_plural": "角色管理",
|
||||
"ordering": ["-create_time"],
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="Dept",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.BigAutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
(
|
||||
"creator",
|
||||
models.CharField(
|
||||
blank=True,
|
||||
help_text="创建人",
|
||||
max_length=64,
|
||||
null=True,
|
||||
verbose_name="创建人",
|
||||
),
|
||||
),
|
||||
(
|
||||
"modifier",
|
||||
models.CharField(
|
||||
blank=True,
|
||||
help_text="修改人",
|
||||
max_length=64,
|
||||
null=True,
|
||||
verbose_name="修改人",
|
||||
),
|
||||
),
|
||||
(
|
||||
"update_time",
|
||||
models.DateTimeField(
|
||||
auto_now=True,
|
||||
help_text="修改时间",
|
||||
null=True,
|
||||
verbose_name="修改时间",
|
||||
),
|
||||
),
|
||||
(
|
||||
"is_deleted",
|
||||
models.BooleanField(default=False, verbose_name="是否软删除"),
|
||||
),
|
||||
("name", models.CharField(max_length=100, verbose_name="部门名称")),
|
||||
(
|
||||
"status",
|
||||
models.SmallIntegerField(
|
||||
choices=[(0, "禁用"), (1, "启用")],
|
||||
default=0,
|
||||
verbose_name="部门状态",
|
||||
),
|
||||
),
|
||||
(
|
||||
"create_time",
|
||||
models.DateTimeField(auto_now_add=True, verbose_name="创建时间"),
|
||||
),
|
||||
(
|
||||
"sort",
|
||||
models.IntegerField(
|
||||
default=0, help_text="数值越小越靠前", verbose_name="显示排序"
|
||||
),
|
||||
),
|
||||
(
|
||||
"leader",
|
||||
models.CharField(
|
||||
blank=True, max_length=20, null=True, verbose_name="负责人"
|
||||
),
|
||||
),
|
||||
(
|
||||
"phone",
|
||||
models.CharField(
|
||||
blank=True, max_length=20, null=True, verbose_name="联系电话"
|
||||
),
|
||||
),
|
||||
(
|
||||
"email",
|
||||
models.EmailField(
|
||||
blank=True, max_length=254, null=True, verbose_name="邮箱"
|
||||
),
|
||||
),
|
||||
("remark", models.TextField(blank=True, verbose_name="备注")),
|
||||
(
|
||||
"pid",
|
||||
models.ForeignKey(
|
||||
blank=True,
|
||||
null=True,
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
related_name="children",
|
||||
to="system.dept",
|
||||
verbose_name="父部门 ID",
|
||||
),
|
||||
),
|
||||
],
|
||||
options={
|
||||
"verbose_name": "部门管理",
|
||||
"verbose_name_plural": "部门管理",
|
||||
"ordering": ["-create_time"],
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="User",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.BigAutoField(
|
||||
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",
|
||||
),
|
||||
),
|
||||
(
|
||||
"username",
|
||||
models.CharField(
|
||||
error_messages={
|
||||
"unique": "A user with that username already exists."
|
||||
},
|
||||
help_text="Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.",
|
||||
max_length=150,
|
||||
unique=True,
|
||||
validators=[
|
||||
django.contrib.auth.validators.UnicodeUsernameValidator()
|
||||
],
|
||||
verbose_name="username",
|
||||
),
|
||||
),
|
||||
(
|
||||
"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"
|
||||
),
|
||||
),
|
||||
(
|
||||
"email",
|
||||
models.EmailField(
|
||||
blank=True, max_length=254, verbose_name="email address"
|
||||
),
|
||||
),
|
||||
(
|
||||
"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"
|
||||
),
|
||||
),
|
||||
(
|
||||
"remark",
|
||||
models.CharField(
|
||||
blank=True,
|
||||
help_text="备注",
|
||||
max_length=256,
|
||||
null=True,
|
||||
verbose_name="备注",
|
||||
),
|
||||
),
|
||||
(
|
||||
"creator",
|
||||
models.CharField(
|
||||
blank=True,
|
||||
help_text="创建人",
|
||||
max_length=64,
|
||||
null=True,
|
||||
verbose_name="创建人",
|
||||
),
|
||||
),
|
||||
(
|
||||
"modifier",
|
||||
models.CharField(
|
||||
blank=True,
|
||||
help_text="修改人",
|
||||
max_length=64,
|
||||
null=True,
|
||||
verbose_name="修改人",
|
||||
),
|
||||
),
|
||||
(
|
||||
"update_time",
|
||||
models.DateTimeField(
|
||||
auto_now=True,
|
||||
help_text="修改时间",
|
||||
null=True,
|
||||
verbose_name="修改时间",
|
||||
),
|
||||
),
|
||||
(
|
||||
"create_time",
|
||||
models.DateTimeField(
|
||||
auto_now_add=True,
|
||||
help_text="创建时间",
|
||||
null=True,
|
||||
verbose_name="创建时间",
|
||||
),
|
||||
),
|
||||
(
|
||||
"is_deleted",
|
||||
models.BooleanField(default=False, verbose_name="是否软删除"),
|
||||
),
|
||||
(
|
||||
"mobile",
|
||||
models.CharField(
|
||||
db_comment="手机号",
|
||||
max_length=11,
|
||||
null=True,
|
||||
validators=[utils.utils.validate_mobile],
|
||||
),
|
||||
),
|
||||
(
|
||||
"nickname",
|
||||
models.CharField(
|
||||
blank=True, db_comment="昵称", max_length=50, null=True
|
||||
),
|
||||
),
|
||||
(
|
||||
"gender",
|
||||
models.SmallIntegerField(
|
||||
blank=True, db_comment="性别", default=0, null=True
|
||||
),
|
||||
),
|
||||
(
|
||||
"language",
|
||||
models.CharField(
|
||||
blank=True,
|
||||
db_comment="语言",
|
||||
max_length=20,
|
||||
null=True,
|
||||
verbose_name="语言",
|
||||
),
|
||||
),
|
||||
(
|
||||
"city",
|
||||
models.CharField(
|
||||
blank=True,
|
||||
db_comment="城市",
|
||||
max_length=20,
|
||||
null=True,
|
||||
verbose_name="城市",
|
||||
),
|
||||
),
|
||||
(
|
||||
"province",
|
||||
models.CharField(
|
||||
blank=True,
|
||||
db_comment="省份",
|
||||
max_length=50,
|
||||
null=True,
|
||||
verbose_name="省份",
|
||||
),
|
||||
),
|
||||
(
|
||||
"country",
|
||||
models.CharField(
|
||||
blank=True,
|
||||
db_comment="国家",
|
||||
max_length=50,
|
||||
null=True,
|
||||
verbose_name="国家",
|
||||
),
|
||||
),
|
||||
(
|
||||
"avatarUrl",
|
||||
models.URLField(
|
||||
blank=True, db_comment="头像", null=True, verbose_name="头像"
|
||||
),
|
||||
),
|
||||
(
|
||||
"status",
|
||||
models.BooleanField(
|
||||
db_comment="帐号状态",
|
||||
default=False,
|
||||
verbose_name="<帐号状态>(1正常 0停用)",
|
||||
),
|
||||
),
|
||||
(
|
||||
"login_date",
|
||||
models.DateTimeField(
|
||||
blank=True,
|
||||
db_comment="最后登录时间",
|
||||
null=True,
|
||||
verbose_name="<最后登录时间>",
|
||||
),
|
||||
),
|
||||
(
|
||||
"login_ip",
|
||||
models.GenericIPAddressField(
|
||||
blank=True, db_comment="最后登录IP", null=True
|
||||
),
|
||||
),
|
||||
(
|
||||
"groups",
|
||||
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",
|
||||
),
|
||||
),
|
||||
(
|
||||
"user_permissions",
|
||||
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",
|
||||
),
|
||||
),
|
||||
(
|
||||
"dept",
|
||||
models.ManyToManyField(
|
||||
blank=True,
|
||||
db_constraint=False,
|
||||
related_name="users",
|
||||
to="system.dept",
|
||||
verbose_name="部门",
|
||||
),
|
||||
),
|
||||
],
|
||||
options={
|
||||
"verbose_name": "用户数据",
|
||||
"verbose_name_plural": "用户数据",
|
||||
"db_table": "system_users",
|
||||
},
|
||||
managers=[
|
||||
("objects", django.contrib.auth.models.UserManager()),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="DictData",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.BigAutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
(
|
||||
"remark",
|
||||
models.CharField(
|
||||
blank=True,
|
||||
help_text="备注",
|
||||
max_length=256,
|
||||
null=True,
|
||||
verbose_name="备注",
|
||||
),
|
||||
),
|
||||
(
|
||||
"creator",
|
||||
models.CharField(
|
||||
blank=True,
|
||||
help_text="创建人",
|
||||
max_length=64,
|
||||
null=True,
|
||||
verbose_name="创建人",
|
||||
),
|
||||
),
|
||||
(
|
||||
"modifier",
|
||||
models.CharField(
|
||||
blank=True,
|
||||
help_text="修改人",
|
||||
max_length=64,
|
||||
null=True,
|
||||
verbose_name="修改人",
|
||||
),
|
||||
),
|
||||
(
|
||||
"update_time",
|
||||
models.DateTimeField(
|
||||
auto_now=True,
|
||||
help_text="修改时间",
|
||||
null=True,
|
||||
verbose_name="修改时间",
|
||||
),
|
||||
),
|
||||
(
|
||||
"create_time",
|
||||
models.DateTimeField(
|
||||
auto_now_add=True,
|
||||
help_text="创建时间",
|
||||
null=True,
|
||||
verbose_name="创建时间",
|
||||
),
|
||||
),
|
||||
(
|
||||
"is_deleted",
|
||||
models.BooleanField(default=False, verbose_name="是否软删除"),
|
||||
),
|
||||
("sort", models.IntegerField(default=0, verbose_name="字典排序")),
|
||||
(
|
||||
"label",
|
||||
models.CharField(
|
||||
default="", max_length=100, verbose_name="字典标签"
|
||||
),
|
||||
),
|
||||
(
|
||||
"value",
|
||||
models.CharField(
|
||||
default="", max_length=100, verbose_name="字典键值"
|
||||
),
|
||||
),
|
||||
("status", models.BooleanField(default=True)),
|
||||
(
|
||||
"color_type",
|
||||
models.CharField(
|
||||
blank=True, default="", max_length=100, verbose_name="颜色类型"
|
||||
),
|
||||
),
|
||||
(
|
||||
"css_class",
|
||||
models.CharField(
|
||||
blank=True, default="", max_length=100, verbose_name="css 样式"
|
||||
),
|
||||
),
|
||||
(
|
||||
"dict_type",
|
||||
models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
related_name="dict_data",
|
||||
to="system.dicttype",
|
||||
verbose_name="字典类型",
|
||||
),
|
||||
),
|
||||
],
|
||||
options={
|
||||
"verbose_name": "字典数据",
|
||||
"verbose_name_plural": "字典数据",
|
||||
"db_table": "system_dict_data",
|
||||
"ordering": ["sort", "id"],
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="Menu",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.BigAutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
(
|
||||
"remark",
|
||||
models.CharField(
|
||||
blank=True,
|
||||
help_text="备注",
|
||||
max_length=256,
|
||||
null=True,
|
||||
verbose_name="备注",
|
||||
),
|
||||
),
|
||||
(
|
||||
"creator",
|
||||
models.CharField(
|
||||
blank=True,
|
||||
help_text="创建人",
|
||||
max_length=64,
|
||||
null=True,
|
||||
verbose_name="创建人",
|
||||
),
|
||||
),
|
||||
(
|
||||
"modifier",
|
||||
models.CharField(
|
||||
blank=True,
|
||||
help_text="修改人",
|
||||
max_length=64,
|
||||
null=True,
|
||||
verbose_name="修改人",
|
||||
),
|
||||
),
|
||||
(
|
||||
"update_time",
|
||||
models.DateTimeField(
|
||||
auto_now=True,
|
||||
help_text="修改时间",
|
||||
null=True,
|
||||
verbose_name="修改时间",
|
||||
),
|
||||
),
|
||||
(
|
||||
"create_time",
|
||||
models.DateTimeField(
|
||||
auto_now_add=True,
|
||||
help_text="创建时间",
|
||||
null=True,
|
||||
verbose_name="创建时间",
|
||||
),
|
||||
),
|
||||
(
|
||||
"is_deleted",
|
||||
models.BooleanField(default=False, verbose_name="是否软删除"),
|
||||
),
|
||||
("name", models.CharField(max_length=100, verbose_name="菜单名称")),
|
||||
(
|
||||
"status",
|
||||
models.IntegerField(
|
||||
choices=[(1, "启用"), (0, "禁用")],
|
||||
default=1,
|
||||
verbose_name="状态",
|
||||
),
|
||||
),
|
||||
(
|
||||
"type",
|
||||
models.CharField(
|
||||
choices=[
|
||||
("catalog", "目录"),
|
||||
("menu", "菜单"),
|
||||
("button", "按钮"),
|
||||
("embedded", "内嵌页面"),
|
||||
("link", "外部链接"),
|
||||
],
|
||||
max_length=20,
|
||||
verbose_name="菜单类型",
|
||||
),
|
||||
),
|
||||
(
|
||||
"path",
|
||||
models.CharField(
|
||||
blank=True, max_length=200, verbose_name="路由路径"
|
||||
),
|
||||
),
|
||||
(
|
||||
"component",
|
||||
models.CharField(
|
||||
blank=True, max_length=200, verbose_name="组件路径"
|
||||
),
|
||||
),
|
||||
(
|
||||
"auth_code",
|
||||
models.CharField(
|
||||
blank=True, max_length=100, verbose_name="权限编码"
|
||||
),
|
||||
),
|
||||
(
|
||||
"pid",
|
||||
models.ForeignKey(
|
||||
blank=True,
|
||||
null=True,
|
||||
on_delete=django.db.models.deletion.SET_NULL,
|
||||
related_name="children",
|
||||
to="system.menu",
|
||||
verbose_name="父菜单",
|
||||
),
|
||||
),
|
||||
(
|
||||
"meta",
|
||||
models.OneToOneField(
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
to="system.menumeta",
|
||||
verbose_name="元数据",
|
||||
),
|
||||
),
|
||||
],
|
||||
options={
|
||||
"verbose_name": "菜单",
|
||||
"verbose_name_plural": "菜单管理",
|
||||
"ordering": ["meta__order", "id"],
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="RolePermission",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.BigAutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
(
|
||||
"remark",
|
||||
models.CharField(
|
||||
blank=True,
|
||||
help_text="备注",
|
||||
max_length=256,
|
||||
null=True,
|
||||
verbose_name="备注",
|
||||
),
|
||||
),
|
||||
(
|
||||
"creator",
|
||||
models.CharField(
|
||||
blank=True,
|
||||
help_text="创建人",
|
||||
max_length=64,
|
||||
null=True,
|
||||
verbose_name="创建人",
|
||||
),
|
||||
),
|
||||
(
|
||||
"modifier",
|
||||
models.CharField(
|
||||
blank=True,
|
||||
help_text="修改人",
|
||||
max_length=64,
|
||||
null=True,
|
||||
verbose_name="修改人",
|
||||
),
|
||||
),
|
||||
(
|
||||
"update_time",
|
||||
models.DateTimeField(
|
||||
auto_now=True,
|
||||
help_text="修改时间",
|
||||
null=True,
|
||||
verbose_name="修改时间",
|
||||
),
|
||||
),
|
||||
(
|
||||
"is_deleted",
|
||||
models.BooleanField(default=False, verbose_name="是否软删除"),
|
||||
),
|
||||
(
|
||||
"create_time",
|
||||
models.DateTimeField(
|
||||
auto_now_add=True, verbose_name="权限关联时间"
|
||||
),
|
||||
),
|
||||
(
|
||||
"menu",
|
||||
models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
to="system.menu",
|
||||
verbose_name="菜单/权限",
|
||||
),
|
||||
),
|
||||
(
|
||||
"role",
|
||||
models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
to="system.role",
|
||||
verbose_name="角色",
|
||||
),
|
||||
),
|
||||
],
|
||||
options={
|
||||
"verbose_name": "角色权限关联",
|
||||
"verbose_name_plural": "角色权限关联",
|
||||
"db_table": "system_role_permission",
|
||||
},
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="role",
|
||||
name="permissions",
|
||||
field=models.ManyToManyField(
|
||||
through="system.RolePermission",
|
||||
to="system.menu",
|
||||
verbose_name="关联权限",
|
||||
),
|
||||
),
|
||||
]
|
||||
Reference in New Issue
Block a user