diff --git a/app/models/admin.py b/app/models/admin.py index 9ba602f..f9c384a 100644 --- a/app/models/admin.py +++ b/app/models/admin.py @@ -7,16 +7,16 @@ from .enums import MethodType class User(BaseModel, TimestampMixin): - username = fields.CharField(max_length=20, unique=True, description="用户名称") - alias = fields.CharField(max_length=30, null=True, description="姓名") - email = fields.CharField(max_length=255, unique=True, description="邮箱") - phone = fields.CharField(max_length=20, null=True, description="电话") + username = fields.CharField(max_length=20, unique=True, description="用户名称", index=True) + alias = fields.CharField(max_length=30, null=True, description="姓名", index=True) + email = fields.CharField(max_length=255, unique=True, description="邮箱", index=True) + phone = fields.CharField(max_length=20, null=True, description="电话", index=True) password = fields.CharField(max_length=128, null=True, description="密码") - is_active = fields.BooleanField(default=True, description="是否激活") - is_superuser = fields.BooleanField(default=False, description="是否为超级管理员") - last_login = fields.DatetimeField(null=True, description="最后登录时间") + is_active = fields.BooleanField(default=True, description="是否激活", index=True) + is_superuser = fields.BooleanField(default=False, description="是否为超级管理员", index=True) + last_login = fields.DatetimeField(null=True, description="最后登录时间", index=True) roles = fields.ManyToManyField("models.Role", related_name="user_roles") - dept_id = fields.IntField(null=True, description="部门ID") + dept_id = fields.IntField(null=True, description="部门ID", index=True) class Meta: table = "user" @@ -28,7 +28,7 @@ class User(BaseModel, TimestampMixin): class Role(BaseModel, TimestampMixin): - name = fields.CharField(max_length=20, unique=True, description="角色名称") + name = fields.CharField(max_length=20, unique=True, description="角色名称", index=True) desc = fields.CharField(max_length=500, null=True, blank=True, description="角色描述") menus = fields.ManyToManyField("models.Menu", related_name="role_menus") apis = fields.ManyToManyField("models.Api", related_name="role_apis") @@ -38,23 +38,23 @@ class Role(BaseModel, TimestampMixin): class Api(BaseModel, TimestampMixin): - path = fields.CharField(max_length=100, description="API路径") - method = fields.CharEnumField(MethodType, description="请求方法") - summary = fields.CharField(max_length=500, description="请求简介") - tags = fields.CharField(max_length=100, description="API标签") + path = fields.CharField(max_length=100, description="API路径", index=True) + method = fields.CharEnumField(MethodType, description="请求方法", index=True) + summary = fields.CharField(max_length=500, description="请求简介", index=True) + tags = fields.CharField(max_length=100, description="API标签", index=True) class Meta: table = "api" class Menu(BaseModel, TimestampMixin): - name = fields.CharField(max_length=20, description="菜单名称") + name = fields.CharField(max_length=20, description="菜单名称", index=True) remark = fields.JSONField(null=True, description="保留字段", blank=True) menu_type = fields.CharEnumField(MenuType, null=True, blank=True, description="菜单类型") icon = fields.CharField(max_length=100, null=True, blank=True, description="菜单图标") - path = fields.CharField(max_length=100, description="菜单路径") - order = fields.IntField(default=0, description="排序") - parent_id = fields.IntField(default=0, max_length=10, description="父菜单ID") + path = fields.CharField(max_length=100, description="菜单路径", index=True) + order = fields.IntField(default=0, description="排序", index=True) + parent_id = fields.IntField(default=0, max_length=10, description="父菜单ID", index=True) is_hidden = fields.BooleanField(default=False, description="是否隐藏") component = fields.CharField(max_length=100, description="组件") keepalive = fields.BooleanField(default=True, description="存活") @@ -65,20 +65,20 @@ class Menu(BaseModel, TimestampMixin): class Dept(BaseModel, TimestampMixin): - name = fields.CharField(max_length=20, unique=True, description="部门名称") + name = fields.CharField(max_length=20, unique=True, description="部门名称", index=True) desc = fields.CharField(max_length=500, null=True, blank=True, description="备注") - is_deleted = fields.BooleanField(default=False, description="软删除标记") - order = fields.IntField(default=0, description="排序") - parent_id = fields.IntField(default=0, max_length=10, description="父部门ID") + is_deleted = fields.BooleanField(default=False, description="软删除标记", index=True) + order = fields.IntField(default=0, description="排序", index=True) + parent_id = fields.IntField(default=0, max_length=10, description="父部门ID", index=True) class Meta: table = "dept" class DeptClosure(BaseModel, TimestampMixin): - ancestor = fields.IntField(description="父代") - descendant = fields.IntField(description="子代") - level = fields.IntField(default=0, description="深度") + ancestor = fields.IntField(description="父代", index=True) + descendant = fields.IntField(description="子代", index=True) + level = fields.IntField(default=0, description="深度", index=True) class AuditLog(BaseModel, TimestampMixin): @@ -89,4 +89,4 @@ class AuditLog(BaseModel, TimestampMixin): method = fields.CharField(max_length=10, default="", description="请求方法", index=True) path = fields.CharField(max_length=255, default="", description="请求路径", index=True) status = fields.IntField(default=-1, description="状态码", index=True) - response_time = fields.IntField(default=0, description="响应时间(单位ms)") + response_time = fields.IntField(default=0, description="响应时间(单位ms)", index=True) diff --git a/app/models/base.py b/app/models/base.py index 3be99a7..654c821 100644 --- a/app/models/base.py +++ b/app/models/base.py @@ -38,9 +38,9 @@ class BaseModel(models.Model): class UUIDModel: - uuid = fields.UUIDField(unique=True, pk=False) + uuid = fields.UUIDField(unique=True, pk=False, index=True) class TimestampMixin: - created_at = fields.DatetimeField(auto_now_add=True) - updated_at = fields.DatetimeField(auto_now=True) + created_at = fields.DatetimeField(auto_now_add=True, index=True) + updated_at = fields.DatetimeField(auto_now=True, index=True)