2025-02-26 21:05:55 +08:00
|
|
|
|
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):
|
2025-04-29 10:21:13 +08:00
|
|
|
|
help = '创建测试用户:4个管理员,7个组长,4个组员'
|
2025-02-26 21:05:55 +08:00
|
|
|
|
|
|
|
|
|
def handle(self, *args, **kwargs):
|
2025-04-29 10:21:13 +08:00
|
|
|
|
# 创建管理员 - 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',
|
2025-02-26 21:05:55 +08:00
|
|
|
|
'role': 'admin',
|
|
|
|
|
}
|
2025-04-29 10:21:13 +08:00
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
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}'))
|
2025-02-26 21:05:55 +08:00
|
|
|
|
|
2025-04-29 10:21:13 +08:00
|
|
|
|
# 创建组长 - 7个部门的组长
|
2025-02-26 21:05:55 +08:00
|
|
|
|
leaders = [
|
|
|
|
|
{
|
|
|
|
|
'username': 'leader1',
|
|
|
|
|
'password': 'leader123',
|
|
|
|
|
'email': 'leader1@example.com',
|
2025-04-29 10:21:13 +08:00
|
|
|
|
'name': '陈达人',
|
|
|
|
|
'department': '达人部门',
|
2025-02-26 21:05:55 +08:00
|
|
|
|
'role': 'leader'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
'username': 'leader2',
|
|
|
|
|
'password': 'leader123',
|
|
|
|
|
'email': 'leader2@example.com',
|
2025-04-29 10:21:13 +08:00
|
|
|
|
'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': '技术部门',
|
2025-02-26 21:05:55 +08:00
|
|
|
|
'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('所有测试用户创建完成!'))
|