import os import django os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'core.settings') django.setup() from django.contrib.auth import get_user_model from users.models import Role, Permission, RolePermission, UserRole User = get_user_model() def seed(): print("--- 开始配置测试角色与账号 ---") # 1. 创建任务管理员角色 task_role, _ = Role.objects.get_or_create( code="TASK_ADMIN", defaults={ "name": "任务管理员", "description": "仅能管理和查看全站任务的受限管理角色" } ) print("角色 TASK_ADMIN 已准备") # 2. 为该角色分配 '全站任务管理' 权限 task_perm = Permission.objects.filter(code="menu:business:tasks").first() if task_perm: RolePermission.objects.get_or_create(role=task_role, permission=task_perm) print("已分配 menu:business:tasks 权限给该角色") else: print("错误:未找到 menu:business:tasks 权限") # 3. 创建测试账号 test_user = User.objects.filter(username="task_admin").first() if not test_user: test_user = User.objects.create_user( username="task_admin", password="123456", nickname="任务审核专员", is_staff=True # 必须为 is_staff 才能访问管理端 /admin/login ) print("测试账号 task_admin/123456 创建成功") else: test_user.set_password("123456") test_user.is_staff = True test_user.save() print("测试账号已存在,密码已重置为 123456") # 4. 绑定角色 UserRole.objects.get_or_create(user=test_user, role=task_role) print("已将 TASK_ADMIN 角色绑定给测试账号 task_admin") print("--- 配置完成 ---") if __name__ == '__main__': seed()