外观
部门管理
使用说明
主界面
用户与部门是一对多关系
编辑界面
- 上级部门:建议只有一个顶级部门
- 负责人、联系电话和邮箱:选填,目前没有关联其它业务功能。
后端实现
目录
代码目录:mysite\myapp_system\dept
模型
部门模型SystemDept
继承了BaseModel
parent_id
外键指向了父节点。默认删除策略为models.PROTECT
,即删除当前节点时,如果有子节点,则不允许删除。
python
class SystemDept(BaseModel):
id = models.BigAutoField(primary_key=True, db_comment="部门id", help_text="部门id")
name = models.CharField(
max_length=30, default="", db_comment="部门名称", help_text="部门名称"
)
parent_id = models.ForeignKey(
"self",
on_delete=models.PROTECT, # 删除父时,若有子,则不允许删除
null=True,
blank=True,
db_constraint=False,
db_column="parent_id",
db_comment="父部门id",
help_text="父部门id",
related_name="children", # 反向关联名称,用于从父访问子
)
# ...
前端实现
目录
代码目录:src\views\system\dept
sh
dept
|-- DeptForm.vue # 编辑界面
`-- index.vue # 主界面