diff --git a/backend/dvadmin/system/models.py b/backend/dvadmin/system/models.py index 5d500b7..d6c229b 100644 --- a/backend/dvadmin/system/models.py +++ b/backend/dvadmin/system/models.py @@ -122,6 +122,27 @@ class Dept(CoreModel): help_text="上级部门", ) + @classmethod + def _recursion(cls, instance, parent, result): + new_instance = getattr(instance, parent, None) + res = [] + data = getattr(instance, result, None) + if data: + res.append(data) + if new_instance: + array = cls._recursion(new_instance, parent, result) + res += array + return res + + @classmethod + def get_region_name(cls, obj): + """ + 获取某个用户的递归所有部门名称 + """ + dept_name_all = cls._recursion(obj, "parent", "name") + dept_name_all.reverse() + return "/".join(dept_name_all) + @classmethod def recursion_all_dept(cls, dept_id: int, dept_all_list=None, dept_list=None): """