示例#1
0
 def create_resource(self):
     """初始化资源数据"""
     for key, value in permissions.RES_PERM.items():
         resource, _ = Resource.objects.update_or_create(code=key,
                                                         defaults={
                                                             "name": value,
                                                             "desc": value,
                                                         })
         self.create_permission(resource)
     print(output_formatter("资源数据初始化完成"))
示例#2
0
    def __new__(cls):
        """实现类创建时的方法校验
        Returns:
            cls(object): 类
        """
        error_list = []
        for choice in cls.action_choice:
            try:
                getattr(cls, choice)
            except AttributeError:
                error_list.append(choice)

        if len(error_list) > 0:
            error = output_formatter(
                f"Command action {error_list} undefined, please contact your administrator!", "red"
            )
            raise AttributeError(error)
        return BaseCommand.__new__(cls)
示例#3
0
    def save(self):
        """保存当前项目中的migrations文件

        Returns:
            result(bool): None
        """
        app_migrations_dir = self.get_app_migrations_dir()

        for app, path in app_migrations_dir.items():
            file_list = self.get_app_migrations_file(path)
            for file in file_list:
                with open(file, "r", encoding='UTF-8') as f:
                    _, status = MigrationsHistory.objects.get_or_create(
                        app_name=app, file_name=file.split(".")[0],
                        defaults={"file_content": json.dumps(f.readlines())}
                    )
                    if status:
                        msg = f"app {app} 下的迁移文件 {file} 成功保存至数据库中!"
                    else:
                        msg = f"app {app} 下的迁移文件 {file} 已保存,本次对其操作将忽略!"
                    print(output_formatter(msg))
示例#4
0
    def load(self):
        """从后端数据库加载当前项目的migrations文件

        Returns:
            result(bool): None
        """
        app_migrations_dir = self.get_app_migrations_dir()

        for app, path in app_migrations_dir.items():
            # 创建migrations文件夹
            if os.path.exists(path) is False:
                os.mkdir(path)

            # 创建migrations文件夹的包文件
            f_init = open(os.path.join(path, "__init__.py"), "w", encoding='UTF-8')
            f_init.close()

            for migrations in MigrationsHistory.objects.filter(app_name=app):
                with open(os.path.join(path, f"{migrations.file_name}.py"), "w", encoding='UTF-8') as file:
                    file.write('# coding:utf-8\n')  # 防止乱码
                    for line in json.loads(migrations.file_content):
                        file.write(line)
            print(output_formatter(f"app {app} 历史迁移文件加载完毕!"))
示例#5
0
    def create_builtin_user():
        """初始化内置用户"""
        for username, data in BUILTIN_USER.items():
            User.objects.get_or_create(username=username, defaults=data)

        print(output_formatter("内置用户初始化完成"))
示例#6
0
 def create_user_group():
     """初始化用户组"""
     print(output_formatter("用户组数据初始化完成"))
示例#7
0
 def create_role():
     """初始化角色"""
     print(output_formatter("角色数据初始化完成"))