from django.core.management.base import BaseCommand from django.contrib.auth import get_user_model from django.utils import timezone from rest_framework.authtoken.models import Token User = get_user_model() class Command(BaseCommand): help = '创建测试用户:4个管理员,7个组长,4个组员' def handle(self, *args, **kwargs): # 创建管理员 - 4个管理员 admins = [ { 'username': 'admin1', 'password': 'admin123', 'email': 'admin1@example.com', 'name': '张技术管理', 'department': '技术部门', 'role': 'admin', }, { 'username': 'admin2', 'password': 'admin123', 'email': 'admin2@example.com', 'name': '王产品管理', 'department': '产品部门', 'role': 'admin', }, { 'username': 'admin3', 'password': 'admin123', 'email': 'admin3@example.com', 'name': '李商务管理', 'department': '商务部门', 'role': 'admin', }, { 'username': 'admin4', 'password': 'admin123', 'email': 'admin4@example.com', 'name': '赵HR管理', 'department': 'HR', 'role': 'admin', } ] for admin_data in admins: admin, created = User.objects.get_or_create( username=admin_data['username'], defaults={ 'email': admin_data['email'], 'name': admin_data['name'], 'role': admin_data['role'], 'department': admin_data['department'], 'is_staff': True, 'is_superuser': True, 'last_login': timezone.now() } ) if created: admin.set_password(admin_data['password']) admin.save() token = Token.objects.create(user=admin) self.stdout.write(self.style.SUCCESS( f'成功创建管理员用户: {admin.username}({admin.name}), Token: {token.key}' )) else: self.stdout.write(self.style.WARNING(f'管理员用户已存在: {admin.username}')) # 创建组长 - 7个部门的组长 leaders = [ { 'username': 'leader1', 'password': 'leader123', 'email': 'leader1@example.com', 'name': '陈达人', 'department': '达人部门', 'role': 'leader' }, { 'username': 'leader2', 'password': 'leader123', 'email': 'leader2@example.com', 'name': '刘商务', 'department': '商务部门', 'role': 'leader' }, { 'username': 'leader3', 'password': 'leader123', 'email': 'leader3@example.com', 'name': '杨样本', 'department': '样本中心', 'role': 'leader' }, { 'username': 'leader4', 'password': 'leader123', 'email': 'leader4@example.com', 'name': '黄产品', 'department': '产品部门', 'role': 'leader' }, { 'username': 'leader5', 'password': 'leader123', 'email': 'leader5@example.com', 'name': '周AI', 'department': 'AI自媒体', 'role': 'leader' }, { 'username': 'leader6', 'password': 'leader123', 'email': 'leader6@example.com', 'name': '吴HR', 'department': 'HR', 'role': 'leader' }, { 'username': 'leader7', 'password': 'leader123', 'email': 'leader7@example.com', 'name': '郑技术', 'department': '技术部门', 'role': 'leader' } ] for leader_data in leaders: leader, created = User.objects.get_or_create( username=leader_data['username'], defaults={ 'email': leader_data['email'], 'name': leader_data['name'], 'role': leader_data['role'], 'department': leader_data['department'], 'is_staff': False, 'last_login': timezone.now() } ) if created: leader.set_password(leader_data['password']) leader.save() token = Token.objects.create(user=leader) self.stdout.write(self.style.SUCCESS( f'成功创建组长用户: {leader.username}({leader.name}), Token: {token.key}' )) else: self.stdout.write(self.style.WARNING(f'组长用户已存在: {leader.username}')) self.stdout.write(self.style.SUCCESS('所有测试用户创建完成!'))